name: "Build and Test" on: push: branches: [ main ] pull_request: branches: ["*"] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: 1.21.5 # There are too many lint errors in current code bases # uncomment when we decide what lint should be addressed or ignored. # - run: make lint coverage-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: "Setup Go" uses: actions/setup-go@v5 with: go-version: 1.21.5 - name: Setup Golang Caches uses: actions/cache@v4 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: ${{ runner.os }}-go - run: git stash # restore patch # test - name: Run Coverage Tests run: |- go version GOPROXY="https://proxy.golang.org,direct" make go.test.coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: fail_ci_if_error: false files: ./coverage.xml verbose: true build: # The type of runner that the job will run on runs-on: ubuntu-latest needs: [lint,coverage-test] steps: - name: "Checkout ${{ github.ref }}" uses: actions/checkout@v4 with: fetch-depth: 2 - name: "Setup Go" uses: actions/setup-go@v5 with: go-version: 1.21.5 - name: Setup Golang Caches uses: actions/cache@v4 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: ${{ runner.os }}-go - run: git stash # restore patch - name: "Build Higress Binary" run: GOPROXY="https://proxy.golang.org,direct" make build - name: Upload Higress Binary uses: actions/upload-artifact@v4 with: name: higress path: out/ gateway-conformance-test: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v3 higress-conformance-test: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v4 - name: Free Up GitHub Actions Ubuntu Runner Disk Space 🔧 uses: jlumbroso/free-disk-space@main with: tool-cache: false android: true dotnet: true haskell: true large-packages: true swap-storage: true - name: "Setup Go" uses: actions/setup-go@v5 with: go-version: 1.21.5 - name: Setup Golang Caches uses: actions/cache@v4 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: ${{ runner.os }}-go - run: git stash # restore patch - name: "Run Higress E2E Conformance Tests" run: GOPROXY="https://proxy.golang.org,direct" make higress-conformance-test publish: runs-on: ubuntu-latest needs: [higress-conformance-test,gateway-conformance-test] steps: - uses: actions/checkout@v4