Push Notification workflow (vouch/vouch-proxy)
The Push Notification workflow from vouch/vouch-proxy, explained and optimized by Latchkey.
CI health: C - fair
Point runs-on at Latchkey and get run de-duplication, job timeouts, SHA-pinned actions, self-healing for flaky steps, and up to 58% lower cost, applied automatically.
What it does
This is the Push Notification workflow from the vouch/vouch-proxy repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.
Below, Latchkey shows a faster, safer version produced by its optimization engine.
The workflow
name: "Push Notification"
on: [push, pull_request, create]
jobs:
notify-irc:
runs-on: ubuntu-latest
steps:
- name: irc push
uses: rectalogic/notify-irc@v1
if: github.event_name == 'push'
with:
channel: "#vouch"
server: irc.libera.chat
nickname: from-github
message: |
${{ github.actor }} pushed ${{ github.event.ref }} ${{ github.event.compare }}
${{ join(github.event.commits.*.message) }}
- name: irc pull request
uses: rectalogic/notify-irc@v1
if: github.event_name == 'pull_request'
with:
channel: "#vouch"
server: irc.libera.chat
nickname: from-github
message: |
${{ github.actor }} opened PR ${{ github.event.html_url }}
- name: irc tag created
uses: rectalogic/notify-irc@v1
if: github.event_name == 'create' && github.event.ref_type == 'tag'
with:
channel: "#vouch"
server: irc.libera.chat
nickname: from-github
message: |
${{ github.actor }} tagged ${{ github.repository }} ${{ github.event.ref }}
The same workflow, on Latchkey
Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.
name: "Push Notification" on: [push, pull_request, create] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: notify-irc: timeout-minutes: 30 runs-on: latchkey-small steps: - name: irc push uses: rectalogic/notify-irc@v1 if: github.event_name == 'push' with: channel: "#vouch" server: irc.libera.chat nickname: from-github message: | ${{ github.actor }} pushed ${{ github.event.ref }} ${{ github.event.compare }} ${{ join(github.event.commits.*.message) }} - name: irc pull request uses: rectalogic/notify-irc@v1 if: github.event_name == 'pull_request' with: channel: "#vouch" server: irc.libera.chat nickname: from-github message: | ${{ github.actor }} opened PR ${{ github.event.html_url }} - name: irc tag created uses: rectalogic/notify-irc@v1 if: github.event_name == 'create' && github.event.ref_type == 'tag' with: channel: "#vouch" server: irc.libera.chat nickname: from-github message: | ${{ github.actor }} tagged ${{ github.repository }} ${{ github.event.ref }}
What changed
- Run on Latchkey managed runners with one line (
runs-on), which apply the fixes below automatically and self-heal transient failures. This example useslatchkey-small; pick the runner size that fits the job. - Cancel superseded runs when a branch or PR gets a newer push.
- Add a job timeout so a hung step cannot burn hours of runner time.
1 third-party action is referenced by a movable tag. Pin it to the commit SHA (Latchkey resolves and applies this automatically) so a repointed tag cannot change what runs.
This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.