Rewrite operator to use easykube controllers #149
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: Integration tests | |
on: | |
# We use pull_request_target so that dependabot-created workflows can run | |
pull_request_target: | |
types: | |
- opened | |
- synchronize | |
- ready_for_review | |
- reopened | |
branches: | |
- main | |
# Use the head ref for workflow concurrency, with cancellation | |
# This should mean that any previous workflows for a PR get cancelled when a new commit is pushed | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref }} | |
cancel-in-progress: true | |
##### | |
# The easiest way to set up a management cluster, make sure all the required images are | |
# present and have an easy way to create Cluster API clusters using the addon provider | |
# is to leverage the existing Azimuth test infrastructure | |
# | |
# TODO(mkjpryor): Change this in the future to use the CAPI management only variation | |
##### | |
jobs: | |
# This job exists so that PRs from outside the main repo are rejected | |
fail_on_remote: | |
runs-on: ubuntu-latest | |
steps: | |
- name: PR must be from a branch in the stackhpc/cluster-api-addon-provider repo | |
run: exit ${{ github.event.pull_request.head.repo.full_name == 'stackhpc/cluster-api-addon-provider' && '0' || '1' }} | |
publish_artifacts: | |
needs: [fail_on_remote] | |
uses: ./.github/workflows/build-push-artifacts.yaml | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
secrets: inherit | |
run_azimuth_tests: | |
needs: [publish_artifacts] | |
runs-on: ubuntu-latest | |
steps: | |
# Check out the configuration repository | |
- name: Set up Azimuth environment | |
uses: stackhpc/azimuth-config/.github/actions/setup@devel | |
with: | |
os-clouds: ${{ secrets.OS_CLOUDS }} | |
environment-prefix: addons-ci | |
target-cloud: ${{ vars.TARGET_CLOUD }} | |
# Use the version of the chart that we just built | |
# We also don't need all the tests | |
# The Kubernetes test is sufficient to confirm the addon provider is working | |
extra-vars: | | |
clusterapi_addon_provider_chart_version: ${{ needs.publish_artifacts.outputs.chart-version }} | |
generate_tests_caas_suite_enabled: false | |
generate_tests_kubernetes_apps_suite_enabled: false | |
# GitHub terminates jobs after 6 hours | |
# We don't want jobs to acquire the lock then get timed out before they can finish | |
# So wait a maximum of 3 hours to acquire the lock, leaving 3 hours for other tasks in the job | |
timeout-minutes: 180 | |
# Provision Azimuth using the azimuth-ops version under test | |
- name: Provision Azimuth | |
uses: stackhpc/azimuth-config/.github/actions/provision@devel | |
# # Run the tests | |
- name: Run Azimuth tests | |
uses: stackhpc/azimuth-config/.github/actions/test@devel | |
# Tear down the environment | |
- name: Destroy Azimuth | |
uses: stackhpc/azimuth-config/.github/actions/destroy@devel | |
if: ${{ always() }} |