name: "Build and Test" on: push: branches: [ main ] pull_request: branches: ["*"] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: go-version: 1.19 # 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@v3 - name: Setup Golang Caches uses: actions/cache@v3 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: ${{ runner.os }}-go - name: Setup Submodule Caches uses: actions/cache@v3 with: path: |- envoy istio external .git/modules key: ${{ runner.os }}-submodules-${{ github.run_id }} restore-keys: ${{ runner.os }}-submodules - run: git stash # restore patch # test - name: Run Coverage Tests run: GOPROXY="https://proxy.golang.org,direct" make go.test.coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: fail_ci_if_error: true 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@v3 with: fetch-depth: 2 - name: "Setup Go" uses: actions/setup-go@v3 with: go-version: 1.19 - name: Setup Golang Caches uses: actions/cache@v3 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: ${{ runner.os }}-go - name: Setup Submodule Caches uses: actions/cache@v3 with: path: |- envoy istio external .git/modules key: ${{ runner.os }}-submodules-${{ github.run_id }} restore-keys: ${{ runner.os }}-submodules - 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@v3 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@v3 - name: "Setup Go" uses: actions/setup-go@v3 with: go-version: 1.19 - name: Setup Golang Caches uses: actions/cache@v3 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: | ${{ runner.os }}-go - name: Setup Submodule Caches uses: actions/cache@v3 with: path: |- envoy istio external .git/modules key: ${{ runner.os }}-submodules-${{ github.run_id }} restore-keys: ${{ runner.os }}-submodules - run: git stash # restore patch - name: "Run Higress E2E Conformance Tests" run: GOPROXY="https://proxy.golang.org,direct" make higress-conformance-test higress-wasmplugin-test: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v3 - name: "Setup Go" uses: actions/setup-go@v3 with: go-version: 1.19 - name: Setup Golang Caches uses: actions/cache@v3 with: path: |- ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ github.run_id }} restore-keys: | ${{ runner.os }}-go - name: Setup Submodule Caches uses: actions/cache@v3 with: path: |- envoy istio external .git/modules key: ${{ runner.os }}-submodules-${{ github.run_id }} restore-keys: ${{ runner.os }}-submodules - run: git stash # restore patch - name: "Run Ingress WasmPlugins Tests" run: GOPROXY="https://proxy.golang.org,direct" make higress-wasmplugin-test publish: runs-on: ubuntu-latest needs: [higress-conformance-test,gateway-conformance-test,higress-wasmplugin-test] steps: - uses: actions/checkout@v3