name: OpenIM CI on: # main branch push: branches: - main pull_request: branches: - main jobs: openimci: name: Test with go ${{ matrix.go_version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} environment: name: openimci strategy: matrix: go_version: ['1.18', '1.19', '1.20'] os: [ubuntu-latest, macOS-latest] steps: - name: Set up Go ${{ matrix.go_version }} uses: actions/setup-go@v2 with: go-version: ${{ matrix.go_version }} id: go - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Run go modules Tidy run: | make tidy - name: Generate all necessary files, such as error code files run: | make gen - name: Check syntax and styling of go sources run: | make lint - name: Run unit test and get test coverage run: | make cover - name: Build source code for host platform run: | make build - name: Collect Test Coverage File uses: actions/upload-artifact@v1.0.0 with: name: main-output path: _output/coverage.out - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ env.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build docker images for host arch and push images to registry run: | make push