Bump google.golang.org/api from 0.152.0 to 0.153.0 #1518
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
branches-ignore: | |
- 'docs/**' | |
workflow_dispatch: | |
inputs: | |
version: | |
description: "Version to build, e.g. 0.1.0" | |
type: string | |
required: false | |
env: | |
PKG_NAME: "vault-secrets-operator" | |
jobs: | |
get-product-version: | |
runs-on: ubuntu-latest | |
outputs: | |
product-version: ${{ steps.get-product-version.outputs.product-version }} | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: get product version | |
id: get-product-version | |
run: | | |
VERSION="${{ github.event.inputs.version || '0.0.0-dev' }}" | |
echo "Using version ${VERSION}" | |
echo "product-version=${VERSION}" >> $GITHUB_OUTPUT | |
build-pre-checks: | |
runs-on: ubuntu-latest | |
needs: get-product-version | |
outputs: | |
go-version: ${{ steps.setup-go.outputs.go-version }} | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- id: setup-go | |
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version-file: .go-version | |
- name: go fmt | |
run: | | |
make check-fmt | |
- name: tf fmt | |
run: | | |
make check-tffmt | |
- name: go mod tidy | |
run: | | |
go mod tidy | |
test -z "$(git status --porcelain)" | |
- name: check versions | |
run: | | |
make check-versions VERSION=${{ needs.get-product-version.outputs.product-version }} | |
- name: generate manifests | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
make generate manifests | |
test -z "$(git status --porcelain)" | |
generate-metadata-file: | |
needs: get-product-version | |
runs-on: ubuntu-latest | |
outputs: | |
filepath: ${{ steps.generate-metadata-file.outputs.filepath }} | |
steps: | |
- name: Checkout directory | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Generate metadata file | |
id: generate-metadata-file | |
uses: hashicorp/actions-generate-metadata@v1 | |
with: | |
version: ${{ needs.get-product-version.outputs.product-version }} | |
product: ${{ env.PKG_NAME }} | |
repositoryOwner: "hashicorp" | |
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: metadata.json | |
path: ${{ steps.generate-metadata-file.outputs.filepath }} | |
build: | |
name: Go ${{ needs.build-pre-checks.outputs.go-version }} linux ${{ matrix.arch }} build | |
needs: [get-product-version, build-pre-checks] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: ["arm64", "amd64"] | |
fail-fast: true | |
steps: | |
- name: Checkout | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Setup go | |
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version-file: .go-version | |
- name: Build | |
env: | |
GOOS: "linux" | |
GOARCH: ${{ matrix.arch }} | |
VERSION: ${{ needs.get-product-version.outputs.product-version }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
mkdir dist out | |
make ci-build | |
zip -r -j out/${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_linux_${{ matrix.arch }}.zip dist/${{ env.GOOS }}/${{ env.GOARCH }}/ | |
- name: Upload binaries | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: ${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_linux_${{ matrix.arch }}.zip | |
path: out/${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_linux_${{ matrix.arch }}.zip | |
build-docker: | |
name: Docker ${{ matrix.arch }} build | |
needs: [get-product-version, build-pre-checks, build] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: ["arm64", "amd64"] | |
env: | |
repo: ${{github.event.repository.name}} | |
version: ${{needs.get-product-version.outputs.product-version}} | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Docker Build (Action) | |
uses: hashicorp/actions-docker-build@v1 | |
env: | |
VERSION: ${{ needs.get-product-version.outputs.product-version }} | |
GO_VERSION: ${{ needs.build-pre-checks.outputs.go-version }} | |
with: | |
version: ${{env.version}} | |
target: release-default | |
arch: ${{matrix.arch}} | |
tags: | | |
docker.io/hashicorp/${{env.repo}}:${{env.version}} | |
public.ecr.aws/hashicorp/${{env.repo}}:${{env.version}} | |
- name: Check binary version in container | |
shell: bash | |
run: | | |
version_output=$(docker run hashicorp/${{env.repo}}:${{env.version}} --version --output=json) | |
echo $version_output | |
git_version=$(echo $version_output | jq -r .gitVersion) | |
if [ "$git_version" != "${{ env.version }}" ]; then | |
echo "$gitVersion expected to be ${{ env.version }}" | |
exit 1 | |
fi | |
build-docker-ubi: | |
name: UBI ${{ matrix.arch }} build | |
needs: [get-product-version, build-pre-checks, build] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: ["arm64", "amd64"] | |
env: | |
repo: ${{github.event.repository.name}} | |
version: ${{needs.get-product-version.outputs.product-version}} | |
image_tag: ${{needs.get-product-version.outputs.product-version}}-ubi | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Docker Build (Action) | |
uses: hashicorp/actions-docker-build@v1 | |
env: | |
VERSION: ${{ needs.get-product-version.outputs.product-version }} | |
GO_VERSION: ${{ needs.build-pre-checks.outputs.go-version }} | |
with: | |
version: ${{env.version}} | |
target: release-ubi | |
arch: ${{matrix.arch}} | |
tags: | | |
docker.io/hashicorp/${{env.repo}}:${{env.image_tag}} | |
public.ecr.aws/hashicorp/${{env.repo}}:${{env.image_tag}} | |
# The quay id here corresponds to the project id on RedHat's portal | |
redhat_tag: quay.io/redhat-isv-containers/64b072322e2773c28d30d988:${{env.image_tag}} | |
- name: Check binary version in container | |
shell: bash | |
run: | | |
version_output=$(docker run hashicorp/${{env.repo}}:${{env.image_tag}} --version --output=json) | |
echo $version_output | |
git_version=$(echo $version_output | jq -r .gitVersion) | |
if [ "$git_version" != "${{ env.version }}" ]; then | |
echo "$gitVersion expected to be ${{ env.version }}" | |
exit 1 | |
fi | |
vault-versions: | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "setting vault versions" | |
outputs: | |
VAULT_N_2: 1.13.8 | |
VAULT_N_1: 1.14.4 | |
VAULT_N: 1.15.0 | |
k8s-versions: | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "setting k8s versions" | |
outputs: | |
K8S_1_24: 1.24.15 | |
K8S_1_25: 1.25.11 | |
K8S_1_26: 1.26.6 | |
K8S_1_27: 1.27.3 | |
K8S_1_28: 1.28.0 | |
integrationTest: | |
runs-on: ubuntu-latest | |
needs: [get-product-version, build-pre-checks, build-docker, vault-versions, k8s-versions] | |
env: | |
KIND_CLUSTER_NAME: vault-secrets-operator | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
VERSION: ${{ needs.get-product-version.outputs.product-version }} | |
OPERATOR_IMAGE: ${{ github.event.repository.name }}_release-default_linux_amd64_${{ needs.get-product-version.outputs.product-version }}_${{ github.sha }}.docker.tar | |
strategy: | |
fail-fast: false | |
matrix: | |
kind-k8s-version: | |
- "${{ needs.k8s-versions.outputs.K8S_1_24 }}" | |
- "${{ needs.k8s-versions.outputs.K8S_1_25 }}" | |
- "${{ needs.k8s-versions.outputs.K8S_1_26 }}" | |
- "${{ needs.k8s-versions.outputs.K8S_1_27 }}" | |
- "${{ needs.k8s-versions.outputs.K8S_1_28 }}" | |
vault-version: | |
- "${{ needs.vault-versions.outputs.VAULT_N_2 }}" | |
- "${{ needs.vault-versions.outputs.VAULT_N_1 }}" | |
- "${{ needs.vault-versions.outputs.VAULT_N }}" | |
installation-method: [helm, kustomize] | |
enterprise: [true, false] | |
# Note: We want to test the operator with the different k8s versions, | |
# and with the different vault versions, but we don't care about testing | |
# all the k8s versions against all the vault versions. | |
# Combos to exclude: | |
# kind-k8s-version: [K8S_1_24, K8S_1_25, K8S_1_26, K8S_1_27] | |
# vault-version: [VAULT_N_2, VAULT_N_1] | |
# We run kustomize ent against the full matrix, and other tests against vault version VAULT_N. | |
# Combos to exclude: | |
# vault-version: [VAULT_N_2, VAULT_N_1] | |
# any combos from installation-method and enterprise except for kustomize true | |
# TODO: When the VDS integration test supports Helm, test kustomize enterprise against one version of (ENT) Vault like the other tests. | |
# TODO: When the VDS integration test supports Helm, swap the matrix filter so helm ent test runs the full matrix. | |
exclude: | |
# vault version N-2 | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_27 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_26 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_25 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_24 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
- vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
installation-method: helm | |
enterprise: true | |
- vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
installation-method: helm | |
enterprise: false | |
- vault-version: ${{ needs.vault-versions.outputs.VAULT_N_2 }} | |
installation-method: kustomize | |
enterprise: false | |
# vault version N-1 | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_27 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_26 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_25 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
- kind-k8s-version: ${{ needs.k8s-versions.outputs.K8S_1_24 }} | |
vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
- vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
installation-method: helm | |
enterprise: true | |
- vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
installation-method: helm | |
enterprise: false | |
- vault-version: ${{ needs.vault-versions.outputs.VAULT_N_1 }} | |
installation-method: kustomize | |
enterprise: false | |
name: vault:${{ matrix.vault-version }} kind:${{ matrix.kind-k8s-version }} ${{ matrix.installation-method }} enterprise=${{ matrix.enterprise }} | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: ${{ env.OPERATOR_IMAGE }} | |
path: dist | |
- name: Create K8s Kind Cluster | |
uses: helm/kind-action@dda0770415bac9fc20092cacbc54aa298604d140 # v1.8.0 | |
with: | |
version: v0.20.0 | |
cluster_name: ${{ env.KIND_CLUSTER_NAME }} | |
config: test/integration/kind/config.yaml | |
node_image: kindest/node:v${{ matrix.kind-k8s-version }} | |
- name: Create kind export log root | |
id: create_kind_export_log_root | |
run: | | |
vault_flavor=oss | |
if [ ${{ matrix.enterprise }} == 'true' ]; then | |
vault_flavor=ent | |
fi | |
log_artifact_name="kind-${{ env.KIND_CLUSTER_NAME}}-$(git rev-parse --short ${{ github.sha }})-${{ matrix.kind-k8s-version }}-${{ matrix.vault-version }}-${vault_flavor}-${{ matrix.installation-method }}-logs" | |
log_root="/tmp/${log_artifact_name}" | |
mkdir -p "${log_root}" | |
echo "log_root=${log_root}" >> $GITHUB_OUTPUT | |
echo "log_artifact_name=${log_artifact_name}" >> $GITHUB_OUTPUT | |
- name: Load Docker image | |
# Load the amd64 docker image from the build-docker job | |
run: | |
make docker-image-load load-docker-image IMAGE_ARCHIVE_FILE=dist/${{ env.OPERATOR_IMAGE }} | |
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version-file: .go-version | |
- name: ${{ matrix.installation-method }} enterprise=${{ matrix.enterprise }} | |
env: | |
INTEGRATION_TESTS: true | |
VAULT_IMAGE_TAG: ${{ matrix.vault-version }} | |
VAULT_LICENSE_CI: ${{ secrets.VAULT_LICENSE_CI }} | |
HCP_ORGANIZATION_ID: ${{ secrets.HCP_ORGANIZATION_ID }} | |
HCP_PROJECT_ID: ${{ secrets.HCP_PROJECT_ID }} | |
HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }} | |
HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }} | |
run: | | |
make_target=integration-test | |
if [ ${{ matrix.installation-method }} == 'helm' ]; then | |
make_target+='-helm' | |
fi | |
if [ ${{ matrix.enterprise }} == 'true' ]; then | |
make_target+='-ent' | |
export VAULT_IMAGE_TAG='${{ matrix.vault-version }}-ent' | |
fi | |
make $make_target SUPPRESS_TF_OUTPUT=true EXPORT_KIND_LOGS_ROOT=${{ steps.create_kind_export_log_root.outputs.log_root }} | |
- name: Store kind cluster logs | |
if: success() | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: ${{ steps.create_kind_export_log_root.outputs.log_artifact_name }} | |
path: ${{ steps.create_kind_export_log_root.outputs.log_root }} | |
- name: Store kind cluster logs failure | |
if: failure() | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: ${{ steps.create_kind_export_log_root.outputs.log_artifact_name }}-failed | |
path: ${{ steps.create_kind_export_log_root.outputs.log_root }} |