Skip to content

TUF-on-CI publish

TUF-on-CI publish #126

Workflow file for this run

name: TUF-on-CI publish
permissions: {}
on:
workflow_dispatch:
inputs:
ref:
type: string
required: false
jobs:
build:
permissions:
pages: read
contents: read
runs-on: ubuntu-latest
steps:
- id: build-and-upload-repository
uses: theupdateframework/tuf-on-ci/actions/upload-repository@95dc66aba6102bbe911ef93c69395ff62ed69bd4 # v0.11.0
with:
gh_pages: true
ref: ${{ inputs.ref }}
deploy-to-pages:
permissions:
pages: write
id-token: write # for authenticating to GH Pages
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy TUF-on-CI repository to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
test-deployed-repository:
needs: deploy-to-pages
permissions:
contents: read # for checking out the repository
issues: write # for modifying Issues
uses: ./.github/workflows/test.yml
update-issue:
runs-on: ubuntu-latest
needs: [build, deploy-to-pages, test-deployed-repository]
if: always() && !cancelled()
permissions:
issues: write # for modifying Issues
contents: read # for checking out the repository
steps:
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@31c86eb3b33c9b601a1f60f98dcbfd1d70f379b4 # v1.10.3
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Update the issue for the workflow
uses: theupdateframework/tuf-on-ci/actions/update-issue@95dc66aba6102bbe911ef93c69395ff62ed69bd4 # v0.11.0
with:
token: ${{ steps.app-token.outputs.token }}
success: ${{ !contains(needs.*.result, 'failure') }}
failure-notification:
runs-on: ubuntu-latest
needs: [build, deploy-to-pages, test-deployed-repository, update-issue]
if: ${{ always() && contains(needs.*.result, 'failure') }}
steps:
- name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_COLOR: failure
MSG_MINIMAL: true
SLACK_TITLE: "${{ github.workflow }} - Failure"
SLACK_MESSAGE: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
SLACK_FOOTER: "triggered by ${{ github.repository }}"
- name: PagerDuty Alert
env:
PAGERDUTY_KEY: ${{ secrets.PAGERDUTY_KEY }}
run: |
curl -X POST 'https://events.pagerduty.com/v2/enqueue' \
-H 'Content-Type: application/json' \
-d '{
"routing_key": "'$PAGERDUTY_KEY'",
"event_action": "trigger",
"payload": {
"summary": "${{ github.workflow }} - Failure",
"severity": "critical",
"source": "${{ github.server_url }}/${{ github.repository }}",
"custom_details": {
"workflow_run": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
}
}'