Convert hashicorp/vault-helm to GitHub Actions (#861)
* Add workflow hashicorp/vault-helm/update-helm-charts-index * Add workflow hashicorp/vault-helm/manual-trigger-update-helm-charts-index * SHA-pin all 3rd-party actions * Restrict workflow permissions * Add actionslint * Add dependabot * Add CODEOWNERS * Replace deprecated references * fixup: First pass at cleaning up update-helm-charts-index * fixup: move to self-hosted for access to vault * fixup: remove vault bits, correct GHA action * fixup: Remove manual invocation * fixup: update CODEOWNERS * Update CODEOWNERS * Fix CODEOWNERS syntax * Use common workflow for action lint * fixup: address review feedback * fixup: codeowners set * Apply suggestions from code review Co-authored-by: Alvin Huang <17609145+alvin-huang@users.noreply.github.com> * fixup: remove slack status action * fixup: more clear error message and correct syntax * fixup: limit actionlint trigger to GHA paths * fixup: glob * fixup: incorporate emily's superior syntax --------- Co-authored-by: Daniel Kimsey <daniel.kimsey@hashicorp.com> Co-authored-by: Tom Proctor <tomhjp@users.noreply.github.com> Co-authored-by: Daniel Kimsey <90741+dekimsey@users.noreply.github.com> Co-authored-by: Alvin Huang <17609145+alvin-huang@users.noreply.github.com>
This commit is contained in:
parent
1307dbea76
commit
bb9a069c06
7 changed files with 70 additions and 8 deletions
7
.github/dependabot.yml
vendored
Normal file
7
.github/dependabot.yml
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
6
.github/workflows/acceptance.yaml
vendored
6
.github/workflows/acceptance.yaml
vendored
|
@ -1,7 +1,5 @@
|
||||||
name: Acceptance Tests
|
name: Acceptance Tests
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
kind:
|
kind:
|
||||||
strategy:
|
strategy:
|
||||||
|
@ -13,14 +11,14 @@ jobs:
|
||||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
- name: Setup test tools
|
- name: Setup test tools
|
||||||
uses: ./.github/workflows/setup-test-tools
|
uses: ./.github/workflows/setup-test-tools
|
||||||
|
|
||||||
- name: Create K8s Kind Cluster
|
- name: Create K8s Kind Cluster
|
||||||
uses: helm/kind-action@d8ccf8fb623ce1bb360ae2f45f323d9d5c5e9f00 # v1.5.0
|
uses: helm/kind-action@d8ccf8fb623ce1bb360ae2f45f323d9d5c5e9f00 # v1.5.0
|
||||||
with:
|
with:
|
||||||
config: test/kind/config.yaml
|
config: test/kind/config.yaml
|
||||||
node_image: kindest/node:v${{ matrix.kind-k8s-version }}
|
node_image: kindest/node:v${{ matrix.kind-k8s-version }}
|
||||||
version: v0.17.0
|
version: v0.17.0
|
||||||
|
|
||||||
- run: bats --tap --timing ./test/acceptance
|
- run: bats --tap --timing ./test/acceptance
|
||||||
env:
|
env:
|
||||||
VAULT_LICENSE_CI: ${{ secrets.VAULT_LICENSE_CI }}
|
VAULT_LICENSE_CI: ${{ secrets.VAULT_LICENSE_CI }}
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
16
.github/workflows/actionlint.yml
vendored
Normal file
16
.github/workflows/actionlint.yml
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# If the repository is public, be sure to change to GitHub hosted runners
|
||||||
|
name: Lint GitHub Actions Workflows
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- .github/workflows/**.yml
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- .github/workflows/**.yml
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
jobs:
|
||||||
|
actionlint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: hashicorp/vault-workflows-common/.github/workflows/actionlint.yaml@main
|
|
@ -1,6 +1,5 @@
|
||||||
name: Setup common testing tools
|
name: Setup common testing tools
|
||||||
description: Install bats and python-yq
|
description: Install bats and python-yq
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
|
@ -18,3 +17,5 @@ runs:
|
||||||
python-version: '3.10'
|
python-version: '3.10'
|
||||||
- run: pip install yq
|
- run: pip install yq
|
||||||
shell: bash
|
shell: bash
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
5
.github/workflows/tests.yaml
vendored
5
.github/workflows/tests.yaml
vendored
|
@ -1,7 +1,5 @@
|
||||||
name: Tests
|
name: Tests
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bats-unit-tests:
|
bats-unit-tests:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -9,7 +7,6 @@ jobs:
|
||||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
- uses: ./.github/workflows/setup-test-tools
|
- uses: ./.github/workflows/setup-test-tools
|
||||||
- run: bats --tap --timing ./test/unit
|
- run: bats --tap --timing ./test/unit
|
||||||
|
|
||||||
chart-verifier:
|
chart-verifier:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
|
@ -23,3 +20,5 @@ jobs:
|
||||||
go-version: '1.19.2'
|
go-version: '1.19.2'
|
||||||
- run: go install github.com/redhat-certification/chart-verifier@${CHART_VERIFIER_VERSION}
|
- run: go install github.com/redhat-certification/chart-verifier@${CHART_VERIFIER_VERSION}
|
||||||
- run: bats --tap --timing ./test/chart
|
- run: bats --tap --timing ./test/chart
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
40
.github/workflows/update-helm-charts-index.yml
vendored
Normal file
40
.github/workflows/update-helm-charts-index.yml
vendored
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
name: update-helm-charts-index
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-helm-charts-index:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
|
- name: verify Chart version matches tag version
|
||||||
|
run: |-
|
||||||
|
export TAG=${{ github.ref_name }}
|
||||||
|
git_tag=$(echo "${TAG#v}")
|
||||||
|
chart_tag=$(yq r Chart.yaml version)
|
||||||
|
if [ "${git_tag}" != "${chart_tag}" ]; then
|
||||||
|
echo "chart version (${chart_tag}) did not match git version (${git_tag})"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- name: update helm-charts index
|
||||||
|
id: update
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.HELM_CHARTS_GITHUB_TOKEN }}
|
||||||
|
run: |-
|
||||||
|
gh workflow run publish-charts.yml \
|
||||||
|
--repo hashicorp/helm-charts \
|
||||||
|
--ref main \
|
||||||
|
-f SOURCE_TAG="${{ github.ref_name }}" \
|
||||||
|
-f SOURCE_REPO="${{ github.repository }}"
|
||||||
|
- uses: hashicorp/actions-slack-status@v1
|
||||||
|
if: ${{always()}}
|
||||||
|
with:
|
||||||
|
success-message: "vault-helm charts index update triggered successfully. View the run <https://github.com/hashicorp/helm-charts/actions/workflows/publish-charts.yml|here>."
|
||||||
|
failure-message: "vault-helm charts index update trigger failed."
|
||||||
|
status: ${{job.status}}
|
||||||
|
slack-webhook-url: ${{secrets.SLACK_WEBHOOK_URL}}
|
1
CODEOWNERS
Normal file
1
CODEOWNERS
Normal file
|
@ -0,0 +1 @@
|
||||||
|
* @hashicorp/vault-ecosystem-foundations
|
Loading…
Reference in a new issue