diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 53a2654b7d..87d0a222c0 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -179,29 +179,37 @@ jobs: secrets: elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} - # TODO(JM): - linux arm64 is not available in our self-hosted runners - # they are currently on the roadmap. - # # create a development build for arm64 - # dev-build-arm64: - # needs: - # - setup - # uses: ./.github/workflows/reusable-dev-build.yml - # with: - # uploaded-binary-name: 'consul-bin-arm64' - # # runs-on: ${{ needs.setup.outputs.compute-xl-arm64 }} + dev-build-arm64: + # only run on enterprise because GHA does not have arm64 runners in OSS + if: ${{ endsWith(github.repository, '-enterprise') }} + needs: + - setup + uses: ./.github/workflows/reusable-dev-build.yml + with: + uploaded-binary-name: 'consul-bin-arm64' + runs-on: ${{ needs.setup.outputs.compute-xl }} + go-arch: "arm64" + repository-name: ${{ github.repository }} + secrets: + elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} - # go-test-arm64: - # # TODO(JM): Fix to run on arm64 - # needs: - # - setup - # - dev-build-arm64 - # uses: ./.github/workflows/reusable-unit-split.yml - # with: - # directory: . - # uploaded-binary-name: 'consul-bin-arm64' - # runner-count: 12 - # # runs-on: ${{ needs.setup.outputs.compute-xl-arm64 }} - # go-test-flags: 'if ! [[ "$GITHUB_REF_NAME" =~ ^main$|^release/ ]]; then export GO_TEST_FLAGS="-short"; fi' + go-test-arm64: + # only run on enterprise because GHA does not have arm64 runners in OSS + if: ${{ endsWith(github.repository, '-enterprise') }} + needs: + - setup + - dev-build-arm64 + uses: ./.github/workflows/reusable-unit-split.yml + with: + directory: . + uploaded-binary-name: 'consul-bin-arm64' + runner-count: 12 + runs-on: "['self-hosted', 'ondemand', 'os=macos-arm', 'arm64']" + go-test-flags: 'if ! [[ "$GITHUB_REF_NAME" =~ ^main$|^release/ ]]; then export GO_TEST_FLAGS="-short"; fi' + repository-name: ${{ github.repository }} + secrets: + elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} + consul-license: ${{secrets.CONSUL_LICENSE}} go-test: needs: diff --git a/.github/workflows/reusable-dev-build.yml b/.github/workflows/reusable-dev-build.yml index 1a0483b193..d134508584 100644 --- a/.github/workflows/reusable-dev-build.yml +++ b/.github/workflows/reusable-dev-build.yml @@ -14,6 +14,10 @@ on: repository-name: required: true type: string + go-arch: + required: false + type: string + default: "" secrets: elevated-github-token: required: true @@ -30,6 +34,8 @@ jobs: with: go-version-file: 'go.mod' - name: Build + env: + GOARCH: ${{ inputs.goarch }} run: make dev # save dev build to pass to downstream jobs - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # pin@v3.1.2