Skip to content

Update cask

Update cask #12

Workflow file for this run

name: Update cask
on:
pull_request:
paths:
- ".github/workflows/update-cask.yml"
- "scripts/update-cask.sh"
schedule:
- cron: "17,47 * * * *"
workflow_dispatch:
inputs:
version:
description: Optional exact Headless release version
required: false
type: string
permissions:
contents: write
concurrency:
group: update-headless-cask
cancel-in-progress: false
jobs:
validate:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
- name: Validate updater
run: |
bash -n scripts/update-cask.sh
shellcheck scripts/update-cask.sh
update:
if: github.event_name != 'pull_request'
runs-on: macos-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
- name: Verify release and render cask
id: render
env:
VERSION: ${{ inputs.version }}
run: |
set +e
./scripts/update-cask.sh "$VERSION"
result=$?
set -e
if [[ "$result" == 78 ]]; then
echo "eligible=false" >> "$GITHUB_OUTPUT"
exit 0
fi
[[ "$result" == 0 ]] || exit "$result"
echo "eligible=true" >> "$GITHUB_OUTPUT"
- name: Validate cask style
if: steps.render.outputs.eligible == 'true'
run: brew style --cask Casks/headless.rb
- name: Commit update
if: steps.render.outputs.eligible == 'true'
run: |
set -euo pipefail
if git diff --quiet -- Casks/headless.rb; then
echo "Cask is already current"
exit 0
fi
rendered_version="$(sed -n 's/^ version "\([^"]*\)"$/\1/p' Casks/headless.rb)"
test -n "$rendered_version"
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Casks/headless.rb
git commit -m "headless $rendered_version"
git push origin HEAD:main