HUB Update E2E Server #259
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: HUB Update E2E Server | |
on: | |
workflow_dispatch: | |
inputs: | |
HUB_SERVER: | |
type: string | |
description: 'HUB Server' | |
UPDATE_SERVER: | |
type: boolean | |
required: true | |
default: false | |
description: 'Update server on success' | |
schedule: | |
- cron: '0 8 * * *' | |
jobs: | |
setup: | |
name: Setup | |
runs-on: ubuntu-latest | |
outputs: | |
HUB_SERVER: ${{ steps.step1.outputs.HUB_SERVER }} | |
UPDATE_SERVER: ${{ steps.step1.outputs.UPDATE_SERVER }} | |
steps: | |
- id: step1 | |
run: | | |
CURRENTDATE=$(date +'%Y%m%d') | |
if([ "${{ github.event_name }}" == "workflow_dispatch" ]); then | |
echo "HUB_SERVER=${{ github.event.inputs.HUB_SERVER || 'https://galaxy.ci-ui-${CURRENTDATE}.gcp.testing.ansible.com' }}" >> "$GITHUB_OUTPUT" | |
echo "UPDATE_SERVER=${{ github.event.inputs.UPDATE_SERVER }}" >> "$GITHUB_OUTPUT" | |
else | |
echo "HUB_SERVER=https://galaxy.ci-ui-${CURRENTDATE}.gcp.testing.ansible.com" >> "$GITHUB_OUTPUT" | |
echo "UPDATE_SERVER=true" >> "$GITHUB_OUTPUT" | |
fi | |
hub-e2e: | |
name: HUB E2E | |
needs: setup | |
uses: ./.github/workflows/hub-e2e.yml | |
with: | |
HUB_SERVER: ${{ needs.setup.outputs.HUB_SERVER }} | |
secrets: | |
HUB_PASSWORD: ${{ secrets.HUB_PASSWORD }} | |
HUB_PROJECT_ID: ${{ secrets.HUB_PROJECT_ID }} | |
HUB_RECORD_KEY: ${{ secrets.HUB_RECORD_KEY }} | |
hub-update-server: | |
name: HUB Update Server | |
if: ${{ needs.setup.outputs.UPDATE_SERVER == 'true' }} | |
needs: | |
- hub-e2e | |
- setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Update Server Variable | |
run: | | |
curl -f -L -X PATCH -H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer ${{ secrets.GH_TOKEN }}" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
"https://api.github.com/repos/${{ github.repository }}/actions/variables/HUB_SERVER" \ | |
-d '{"name":"HUB_SERVER","value":"${{ needs.setup.outputs.HUB_SERVER }}"}' | |
- name: Slack Notification | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"attachments": | |
[ | |
{ | |
"color": "#00DD00", | |
"blocks": | |
[ | |
{ | |
"type": "section", | |
"text": | |
{ | |
"type": "mrkdwn", | |
"text": "*Ansible-UI Galaxy E2E Server Updated* - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Success> - <${{ needs.setup.outputs.HUB_SERVER }}|Server>" | |
} | |
} | |
] | |
} | |
] | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
slack-failure-notification: | |
name: Slack Failure Notification | |
if: ${{ failure() && needs.setup.outputs.UPDATE_SERVER == 'true' }} | |
needs: | |
- hub-update-server | |
- setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Slack Notification | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"attachments": | |
[ | |
{ | |
"color": "#FF0000", | |
"blocks": [ | |
{ | |
"type": "section", | |
"text": { | |
"type": "mrkdwn", | |
"text": "*Ansible-UI Galaxy E2E Server Update Failed* - *<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Failure>* - <${{ needs.setup.outputs.HUB_SERVER }}|Server>" | |
} | |
} | |
] | |
} | |
] | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK |