Test Extension workflows - Master (3.x) #30
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: Test Extension workflows - Master (3.x) | |
on: | |
schedule: | |
- cron: "0 0 * * *" | |
defaults: | |
run: | |
shell: bash | |
working-directory: ./ | |
jobs: | |
test-extensions-creators-and-update-paths: | |
if: ${{ github.repository_owner == 'rancher' }} | |
runs-on: ubuntu-latest | |
outputs: | |
test-extensions-creators-and-update-paths-job-status: ${{ job.status }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Retrieve Shell and Creators versions | |
run: .github/workflows/scripts/test-extensions-creators-build.sh | |
id: test-extensions-and-creators | |
shell: bash | |
retrieve-tags-master: | |
if: ${{ github.repository_owner == 'rancher' }} | |
runs-on: ubuntu-latest | |
outputs: | |
SHELL_TAG: ${{ steps.retrieve-data.outputs.SHELL_TAG }} | |
CREATORS_TAG: ${{ steps.retrieve-data.outputs.CREATORS_TAG }} | |
ECI_TAG: ${{ steps.retrieve-data.outputs.ECI_TAG }} | |
EXTENSIONS_TAG: ${{ steps.retrieve-data.outputs.EXTENSIONS_TAG }} | |
CURR_JOB_ID: ${{ github.job }} | |
tags-job-status: ${{ job.status }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
ref: master | |
- name: Retrieve Shell and Creators versions | |
run: source ./.github/workflows/scripts/retrieve-versions.sh | |
id: retrieve-data | |
shell: bash | |
test-build-extension-charts-master: | |
needs: retrieve-tags-master | |
uses: rancher/dashboard/.github/workflows/build-extension-charts.yml@master | |
permissions: | |
actions: write | |
contents: write | |
deployments: write | |
pages: write | |
with: | |
target_branch: 'gh-pages' | |
tagged_release: ${{ needs.retrieve-tags-master.outputs.EXTENSIONS_TAG }} | |
is_test: 'true' | |
test_ext_repo: 'ui-plugin-examples' | |
test_ext_branch: 'main' | |
test-build-extension-catalog-master: | |
needs: retrieve-tags-master | |
uses: rancher/dashboard/.github/workflows/build-extension-catalog.yml@master | |
permissions: | |
actions: write | |
contents: read | |
packages: write | |
with: | |
registry_target: ghcr.io | |
registry_user: ${{ github.actor }} | |
tagged_release: ${{ needs.retrieve-tags-master.outputs.ECI_TAG }} | |
is_test: 'true' | |
test_ext_repo: 'ui-plugin-examples' | |
test_ext_branch: 'main' | |
secrets: | |
registry_token: ${{ secrets.GITHUB_TOKEN }} | |
test-release-shell-pkg-master: | |
needs: retrieve-tags-master | |
uses: rancher/dashboard/.github/workflows/release-shell-pkg.yaml@master | |
with: | |
is_test: 'true' | |
test_branch: 'master' | |
tag: ${{ needs.retrieve-tags-master.outputs.SHELL_TAG }} | |
test-release-creators-pkg-master: | |
needs: retrieve-tags-master | |
uses: rancher/dashboard/.github/workflows/release-shell-pkg.yaml@master | |
with: | |
is_test: 'true' | |
test_branch: 'master' | |
tag: ${{ needs.retrieve-tags-master.outputs.CREATORS_TAG }} | |
slack-message: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: [test-extensions-creators-and-update-paths, retrieve-tags-master, test-build-extension-charts-master, test-build-extension-catalog-master, test-release-shell-pkg-master, test-release-creators-pkg-master] | |
steps: | |
- name: Slack message for workflow | |
if: always() | |
shell: bash | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL_EXT_WFS }} | |
run: | | |
OUTPUT_ARRAY=("${{ needs.test-extensions-creators-and-update-paths.outputs.test-extensions-creators-and-update-paths-job-status }}" "${{ needs.retrieve-tags-master.outputs.tags-job-status }}" "${{ needs.test-build-extension-charts-master.outputs.build-job-status }}" "${{ needs.test-build-extension-catalog-master.outputs.build-extension-catalog-job-status }}" "${{ needs.test-release-shell-pkg-master.outputs.build-release-shell-creators-status }}" "${{ needs.test-release-creators-pkg-master.outputs.build-release-shell-creators-status }}") | |
JOB_NAME_ARRAY=("test-extensions-creators-and-update-paths" "retrieve-tags-master" "test-build-extension-charts-master" "test-build-extension-catalog-master" "test-release-shell-pkg-master" "test-release-creators-pkg-master") | |
if [[ ${OUTPUT_ARRAY[@]} =~ "failure" ]]; then | |
MSG_PREFIX="\nWorkflows testing for extensions failed! ❌" | |
elif [[ ${OUTPUT_ARRAY[@]} =~ (^|[[:space:]])""($|[[:space:]]) ]]; then | |
MSG_PREFIX="\nSomething went wrong during the workflows testing! ⭕" | |
else | |
MSG_PREFIX="\nWorkflows testing for extensions succedded! ✅" | |
fi | |
echo "message prefix ::: $MSG_PREFIX" | |
MSG="$MSG_PREFIX" | |
for index in "${!OUTPUT_ARRAY[@]}" | |
do | |
if [[ ${OUTPUT_ARRAY[$index]} == "failure" ]]; then | |
EMOJI="❌" | |
elif [[ ${OUTPUT_ARRAY[$index]} == "" ]]; then | |
EMOJI="NO JOB STATUS! ⭕" | |
else | |
EMOJI="✅" | |
fi | |
MSG="$MSG \n::: Status for ${JOB_NAME_ARRAY[$index]} job => ${OUTPUT_ARRAY[$index]} $EMOJI" | |
done | |
echo "message sent: $MSG" | |
curl -X POST -H 'Content-type: application/json; charset=utf-8' \ | |
--data "{\"branch\": \"master\", \"message\": \"$MSG\", \"workflow_run\": ${{ github.run_id }} }" $SLACK_WEBHOOK |