From 0df7c48dddde3e2ace45cc29710db97010450896 Mon Sep 17 00:00:00 2001 From: Juan <1766933+judavi@users.noreply.github.com> Date: Thu, 20 Apr 2023 09:52:28 +0000 Subject: [PATCH] Centralizing workflow go-version variable Signed-off-by: Juan <1766933+judavi@users.noreply.github.com> --- .github/workflows/build.yaml | 5 ++++- .github/workflows/contrib.yaml | 5 ++++- .github/workflows/coverage.yaml | 5 ++++- .github/workflows/e2e-arm64.yaml | 5 ++++- .github/workflows/e2e.yaml | 5 ++++- .github/workflows/fuzzing.yaml | 5 ++++- .github/workflows/go-version.yaml | 22 ++++++++++++++++++++++ .github/workflows/govuln.yaml | 5 ++++- .github/workflows/grpcproxy.yaml | 5 ++++- .github/workflows/release.yaml | 5 ++++- .github/workflows/robustness-template.yaml | 5 ++++- .github/workflows/static-analysis.yaml | 5 ++++- .github/workflows/tests-arm64.yaml | 5 ++++- .github/workflows/tests.yaml | 5 ++++- scripts/release.sh | 2 +- 15 files changed, 75 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/go-version.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 208c5fae1..5b645a612 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,8 +3,11 @@ on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml build: runs-on: ubuntu-latest + needs: goversion strategy: fail-fast: false matrix: @@ -22,7 +25,7 @@ jobs: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - env: TARGET: ${{ matrix.target }} run: | diff --git a/.github/workflows/contrib.yaml b/.github/workflows/contrib.yaml index f499969f2..a361e024c 100644 --- a/.github/workflows/contrib.yaml +++ b/.github/workflows/contrib.yaml @@ -2,13 +2,16 @@ name: Test contrib/mixin on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: runs-on: ubuntu-latest + needs: goversion steps: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: | set -euo pipefail diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 1b91e8ce7..0acbdff0c 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -2,8 +2,11 @@ name: Coverage on: [push] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml coverage: runs-on: ubuntu-latest + needs: goversion strategy: fail-fast: false matrix: @@ -13,7 +16,7 @@ jobs: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - env: TARGET: ${{ matrix.target }} run: | diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index 120c37c72..71f35dfce 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -4,10 +4,13 @@ on: - cron: '0 1 * * *' # runs daily at 1am. permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: # this is to prevent the job to run at forked projects if: github.repository == 'etcd-io/etcd' runs-on: [Linux, ARM64] + needs: goversion strategy: fail-fast: true matrix: @@ -18,7 +21,7 @@ jobs: - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: ref: main - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: date - env: TARGET: ${{ matrix.target }} diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 873fb1620..35a17c50a 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -2,8 +2,11 @@ name: E2E on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: runs-on: ubuntu-latest + needs: goversion strategy: fail-fast: true matrix: @@ -14,7 +17,7 @@ jobs: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: date - env: TARGET: ${{ matrix.target }} diff --git a/.github/workflows/fuzzing.yaml b/.github/workflows/fuzzing.yaml index 0e443f6c8..c33a54b1a 100644 --- a/.github/workflows/fuzzing.yaml +++ b/.github/workflows/fuzzing.yaml @@ -2,8 +2,11 @@ name: Fuzzing v3rpc on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml fuzzing: runs-on: ubuntu-latest + needs: goversion strategy: fail-fast: false env: @@ -12,7 +15,7 @@ jobs: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: | set -euo pipefail diff --git a/.github/workflows/go-version.yaml b/.github/workflows/go-version.yaml new file mode 100644 index 000000000..d77a99c17 --- /dev/null +++ b/.github/workflows/go-version.yaml @@ -0,0 +1,22 @@ +name: Go version setup + +env: + GO_VERSION: "1.19.8" + +on: + workflow_call: + outputs: + goversion: + value: ${{ jobs.version.outputs.goversion }} + +jobs: + version: + name: Set Go version variable for all the workflows + runs-on: ubuntu-latest + outputs: + goversion: ${{ steps.step1.outputs.goversion }} + steps: + - id: step1 + run: | + echo "Go Version: $GO_VERSION" + echo "goversion=$GO_VERSION" >> $GITHUB_OUTPUT \ No newline at end of file diff --git a/.github/workflows/govuln.yaml b/.github/workflows/govuln.yaml index 5967945a0..17c6e4784 100644 --- a/.github/workflows/govuln.yaml +++ b/.github/workflows/govuln.yaml @@ -2,13 +2,16 @@ name: Go Vulnerability Checker on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: runs-on: ubuntu-latest + needs: goversion steps: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: date - run: | set -euo pipefail diff --git a/.github/workflows/grpcproxy.yaml b/.github/workflows/grpcproxy.yaml index 1a6c8daa4..a2d19aa7e 100644 --- a/.github/workflows/grpcproxy.yaml +++ b/.github/workflows/grpcproxy.yaml @@ -2,8 +2,11 @@ name: grpcProxy-tests on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: runs-on: ubuntu-latest + needs: goversion strategy: fail-fast: true matrix: @@ -14,7 +17,7 @@ jobs: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: date - env: TARGET: ${{ matrix.target }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 58a4e3486..646f4f1c8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -2,13 +2,16 @@ name: Release on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml main: runs-on: ubuntu-latest + needs: goversion steps: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - name: release run: | set -euo pipefail diff --git a/.github/workflows/robustness-template.yaml b/.github/workflows/robustness-template.yaml index 75812447e..4bb599ac2 100644 --- a/.github/workflows/robustness-template.yaml +++ b/.github/workflows/robustness-template.yaml @@ -17,14 +17,17 @@ on: type: string permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: timeout-minutes: 210 runs-on: ubuntu-latest + needs: goversion steps: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: '1.19.8' + go-version: ${{ needs.goversion.outputs.goversion }} - name: test-robustness env: ETCD_BRANCH: "${{ inputs.etcdBranch }}" diff --git a/.github/workflows/static-analysis.yaml b/.github/workflows/static-analysis.yaml index 1783c2ff0..8012befc1 100644 --- a/.github/workflows/static-analysis.yaml +++ b/.github/workflows/static-analysis.yaml @@ -2,13 +2,16 @@ name: Static Analysis on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml run: runs-on: ubuntu-latest + needs: goversion steps: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - name: golangci-lint uses: golangci/golangci-lint-action@08e2f20817b15149a52b5b3ebe7de50aff2ba8c5 # v3.4.0 with: diff --git a/.github/workflows/tests-arm64.yaml b/.github/workflows/tests-arm64.yaml index 43e32d3b3..e2df91c9f 100644 --- a/.github/workflows/tests-arm64.yaml +++ b/.github/workflows/tests-arm64.yaml @@ -3,10 +3,13 @@ on: schedule: - cron: '30 1 * * *' # runs daily at 1:30 am. jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: # this is to prevent the job to run at forked projects if: github.repository == 'etcd-io/etcd' runs-on: [Linux, ARM64] + needs: goversion strategy: fail-fast: false matrix: @@ -20,7 +23,7 @@ jobs: - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: ref: main - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: date - env: TARGET: ${{ matrix.target }} diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index cab8e2e87..659769aea 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -2,8 +2,11 @@ name: Tests on: [push, pull_request] permissions: read-all jobs: + goversion: + uses: ./.github/workflows/go-version.yaml test: runs-on: ubuntu-latest + needs: goversion strategy: fail-fast: false matrix: @@ -17,7 +20,7 @@ jobs: - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: - go-version: "1.19.8" + go-version: ${{ needs.goversion.outputs.goversion }} - run: date - env: TARGET: ${{ matrix.target }} diff --git a/scripts/release.sh b/scripts/release.sh index 7eddc29ab..ce22792ba 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -112,7 +112,7 @@ main() { # Check go version. log_callout "Check go version" local go_version current_go_version - go_version="go$(grep go-version .github/workflows/build.yaml | awk '{print $2}' | tr -d '"')" + go_version="go$(grep -oP '(?<=GO_VERSION:\s")[^"]*' .github/workflows/go-version.yaml | tr -d ' ')" current_go_version=$(go version | awk '{ print $3 }') if [[ "${current_go_version}" != "${go_version}" ]]; then log_error "Current go version is ${current_go_version}, but etcd ${RELEASE_VERSION} requires ${go_version} (see .github/workflows/build.yaml)."