Skip to content

Commit

Permalink
Create discrete tests
Browse files Browse the repository at this point in the history
  • Loading branch information
a-thomas-22 committed Feb 9, 2024
1 parent 18ee68a commit 7bceebe
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 37 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Lint Charts

on:
pull_request:
branches:
- main

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.2

- uses: actions/setup-python@v4
with:
python-version: "3.9"
check-latest: true

- name: Set up chart-testing
uses: helm/[email protected]

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }} --config ct.yaml)
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }} --lint-conf lintconf.yaml --config ct.yaml
Original file line number Diff line number Diff line change
@@ -1,48 +1,13 @@
name: Lint and Test Charts
name: Test Charts (Install)

on:
pull_request:
branches:
- main

jobs:
lint:
test-install:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.2

- uses: actions/setup-python@v4
with:
python-version: "3.9"
check-latest: true

- name: Set up chart-testing
uses: helm/[email protected]

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }} --config ct.yaml)
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }} --lint-conf lintconf.yaml --config ct.yaml

test:
runs-on: ubuntu-latest
needs: lint
if: needs.lint.result == 'success'

steps:
- name: Checkout
Expand Down Expand Up @@ -70,6 +35,7 @@ jobs:
fi
- name: Prepare CI secrets for Helm as a single quoted string
if: steps.list-changed.outputs.changed == 'true'
env:
CI_TEST_ACCOUNT_PRIVATE_KEY: ${{ secrets.CI_TEST_ACCOUNT_PRIVATE_KEY }}
CI_PARENT_CHAIN_URL_SEPOLIA: ${{ secrets.CI_PARENT_CHAIN_URL_SEPOLIA }}
Expand Down
81 changes: 81 additions & 0 deletions .github/workflows/test-upgrade.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Test Charts (Upgrade)

on:
pull_request:
branches:
- main

jobs:
test-upgrade:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.2

- name: Set up chart-testing
uses: helm/[email protected]

- name: Create kind cluster
uses: helm/[email protected]

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }} --config ct.yaml)
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Prepare CI secrets for Helm as a single quoted string
if: steps.list-changed.outputs.changed == 'true'
env:
CI_TEST_ACCOUNT_PRIVATE_KEY: ${{ secrets.CI_TEST_ACCOUNT_PRIVATE_KEY }}
CI_PARENT_CHAIN_URL_SEPOLIA: ${{ secrets.CI_PARENT_CHAIN_URL_SEPOLIA }}
CI_BASELINE_RPC_KEY_SEPOLIA: ${{ secrets.CI_BASELINE_RPC_KEY_SEPOLIA }}
# Map additional secrets as needed
run: |
secrets_for_helm=""
# Capture all 'CI_' prefixed environment variables into an array
IFS=$'\n' read -r -d '' -a secret_names < <(env | grep '^CI_' | sed 's/=.*//' && printf '\0')
for secret_name in "${secret_names[@]}"; do
# Extract the variable name without the CI_ prefix for Helm values
variable_name=$(echo $secret_name | sed 's/^CI_//')
# Get the value of the dynamic variable name
secret_value=${!secret_name}
# Append to the secrets string in the required format
if [ -z "$secrets_for_helm" ]; then
secrets_for_helm="ci.secrets.${variable_name}=${secret_value}"
else
secrets_for_helm="${secrets_for_helm},ci.secrets.${variable_name}=${secret_value}"
fi
done
# Remove the initial comma to clean up the format
secrets_for_helm=${secrets_for_helm#,}
# Format the entire string for --helm-extra-set-args, ensuring it's properly quoted
helm_extra_set_args="--set ${secrets_for_helm}"
# Print the formatted string for debugging
echo "helm_extra_set_args=${helm_extra_set_args}"
# Use the command directly or set the HELM_EXTRA_SET_ARGS environment variable for later use in the workflow
echo "HELM_EXTRA_SET_ARGS=${helm_extra_set_args}" >> $GITHUB_ENV
- name: Run chart-testing (install)
if: steps.list-changed.outputs.changed == 'true'
run: |
#print the HELM_EXTRA_SET_ARGS for debugging
echo "HELM_EXTRA_SET_ARGS=${HELM_EXTRA_SET_ARGS}"
#print environment variables for debugging
env
ct install --target-branch ${{ github.event.repository.default_branch }} --config ct.yaml --upgrade --helm-extra-set-args "$HELM_EXTRA_SET_ARGS"

0 comments on commit 7bceebe

Please sign in to comment.