diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8e1c95f62..7e0113b44 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,17 +33,53 @@ jobs: uses: actions/setup-go@v4 with: go-version: 1.21.4 - check-latest: true - cache: true + cache: false - - name: Dependencies + - name: Cache Go artifacts + uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + ~/go/bin + key: go-artifacts-${{ runner.os }}-check-all-${{ hashFiles('go.sum') }} + restore-keys: go-artifacts-${{ runner.os }}-check-all- + + - name: Run check-all run: | - make install-golangci-lint make check-all git diff --exit-code - test: + build: needs: lint + name: build + runs-on: ubuntu-latest + steps: + - name: Code checkout + uses: actions/checkout@v4 + + - name: Setup Go + id: go + uses: actions/setup-go@v4 + with: + go-version: 1.21.4 + cache: false + + - name: Cache Go artifacts + uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + ~/go/bin + key: go-artifacts-${{ runner.os }}-crossbuild-${{ hashFiles('go.sum') }} + restore-keys: go-artifacts-${{ runner.os }}-crossbuild- + + - name: Build + run: make crossbuild + + test: + needs: build strategy: matrix: scenario: ["test-full", "test-pure", "test-full-386"] @@ -57,39 +93,22 @@ jobs: uses: actions/setup-go@v4 with: go-version: 1.21.4 - check-latest: true - cache: true + cache: false + + - name: Cache Go artifacts + uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + ~/go/bin + key: go-artifacts-${{ runner.os }}-${{ matrix.scenario }}-${{ hashFiles('go.sum') }} + restore-keys: go-artifacts-${{ runner.os }}-${{ matrix.scenario }}- - name: run tests - run: | - make ${{ matrix.scenario}} + run: make ${{ matrix.scenario}} - name: Publish coverage uses: codecov/codecov-action@v3 with: file: ./coverage.txt - - build: - needs: test - name: build - runs-on: ubuntu-latest - steps: - - name: Code checkout - uses: actions/checkout@v4 - - - name: Setup Go - id: go - uses: actions/setup-go@v4 - with: - go-version: 1.21.4 - check-latest: true - cache: true - - - uses: actions/cache@v3 - with: - path: gocache-for-docker - key: gocache-docker-${{ runner.os }}-${{ steps.go.outputs.go-version }}-${{ hashFiles('go.mod') }} - - - name: Build - run: | - make crossbuild