name: CI on: push: branches: - "master" pull_request: branches: - "*" defaults: run: shell: bash env: # go needs absolute directories, using the $HOME variable doesn't work here. GOCACHE: /home/runner/work/go/pkg/build GOPATH: /home/runner/work/go # If you change this value, please change it in the following files as well: # /Dockerfile # # Don't bump this until go 1.19 is out (which should include a fix for # https://github.com/golang/go/issues/51799). There was a race condition # introduced with go 1.16.10 that causes the unit tests to fail (could also # happen in production). GO_VERSION: 1.19.2 jobs: ######################## # rpc compilation check ######################## rpc-check: name: RPC check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v3 - name: Generate RPC stubs and check REST annotations run: make rpc-check ####################### # sql model generation ####################### sqlc-check: name: Sqlc check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v3 - name: docker image cache uses: satackey/action-docker-layer-caching@v0.0.11 - name: Generate sql models run: make sqlc-check ######################## # lint code ######################## lint: name: lint code runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: go cache uses: actions/cache@v1 with: path: /home/runner/work/go key: subasta-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} restore-keys: | aperture-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} aperture-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- aperture-${{ runner.os }}-go-${{ env.GO_VERSION }}- aperture-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '${{ env.GO_VERSION }}' - name: lint run: make lint ######################## # run unit tests ######################## unit-test: name: run unit tests runs-on: ubuntu-latest strategy: # Allow other tests in the matrix to continue if one fails. fail-fast: false matrix: unit_type: - unit-race - unit-race dbbackend=postgres steps: - name: git checkout uses: actions/checkout@v2 - name: go cache uses: actions/cache@v1 with: path: /home/runner/work/go key: subasta-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} restore-keys: | aperture-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} aperture-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- aperture-${{ runner.os }}-go-${{ env.GO_VERSION }}- aperture-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '${{ env.GO_VERSION }}' - name: run ${{ matrix.unit_type }} run: make ${{ matrix.unit_type }}