diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 49d9b87770c9..6350d9fdd93e 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -212,6 +212,7 @@ jobs: consul-license: ${{secrets.CONSUL_LICENSE}} go-test-enterprise: + if: ${{ endsWith(github.repository, '-enterprise') }} needs: - setup - dev-build @@ -258,34 +259,6 @@ jobs: elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} consul-license: ${{secrets.CONSUL_LICENSE}} - go-test-envoyextensions: - needs: - - setup - - dev-build - uses: ./.github/workflows/reusable-unit.yml - with: - directory: envoyextensions - runs-on: ${{ needs.setup.outputs.compute-xl }} - repository-name: ${{ github.repository }} - go-tags: "${{ github.event.repository.name == 'consul-enterprise' && 'consulent consulprem consuldev' || '' }}" - secrets: - elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} - consul-license: ${{secrets.CONSUL_LICENSE}} - - go-test-troubleshoot: - needs: - - setup - - dev-build - uses: ./.github/workflows/reusable-unit.yml - with: - directory: troubleshoot - runs-on: ${{ needs.setup.outputs.compute-xl }} - repository-name: ${{ github.repository }} - go-tags: "${{ github.event.repository.name == 'consul-enterprise' && 'consulent consulprem consuldev' || '' }}" - secrets: - elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} - consul-license: ${{secrets.CONSUL_LICENSE}} - go-test-api-1-19: needs: - setup @@ -346,3 +319,44 @@ jobs: runs-on: ubuntu-latest steps: - run: "echo ok" + + # This is job is required for branch protection as a required gihub check + # because GitHub actions show up as checks at the job level and not the + # workflow level. This is currently a feature request: + # https://github.com/orgs/community/discussions/12395 + # + # This job must: + # - be placed after the fanout of a workflow so that everything fans back in + # to this job. + # - "need" any job that is part of the fan out / fan in + # - implement the if logic because we have conditional jobs + # (go-test-enteprise) that this job needs and this would potentially get + # skipped if a previous job got skipped. So we use the if clause to make + # sure it does not get skipped. + + go-tests-success: + needs: + - setup + - check-generated-deep-copy + - check-generated-protobuf + - check-go-mod + - lint-consul-retry + - lint-enums + - lint + - lint-32bit + # - go-test-arm64 + - go-test-enterprise + - go-test-oss + - go-test-race + - go-test-api-1-19 + - go-test-api-1-20 + - go-test-sdk-1-19 + - go-test-sdk-1-20 + - go-test-32bit + runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} + if: | + (always() && ! cancelled()) && + !contains(needs.*.result, 'failure') && + !contains(needs.*.result, 'cancelled') + steps: + - run: echo "go-tests succeeded"