Skip to content

Test Extension workflows - Master (3.x) #30

Test Extension workflows - Master (3.x)

Test Extension workflows - Master (3.x) #30

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