Update Casks #2729
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: Update Casks | |
concurrency: jimeh/homebrew-emacs-builds/update-casks | |
on: | |
schedule: | |
- cron: "0 15 * * *" | |
workflow_dispatch: | |
inputs: | |
cask: | |
description: "Specific cask to update (all if empty)" | |
required: false | |
default: "" | |
extraArgs: | |
description: "Extra arguments passed to emacs-builder cask update" | |
required: false | |
default: "" | |
jobs: | |
emacs-builder: | |
runs-on: macos-12 | |
steps: | |
- name: Checkout build-emacs-for-macos repo | |
uses: actions/checkout@v4 | |
with: | |
repository: jimeh/build-emacs-for-macos | |
ref: "v0.6.45" | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- name: Build emacs-builder tool | |
run: make build | |
- name: Upload emacs-builder artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: emacs-builder | |
path: bin/emacs-builder | |
if-no-files-found: error | |
live-check: | |
runs-on: macos-12 | |
outputs: | |
tap_sha: ${{ steps.tap_sha.outputs.sha }} | |
steps: | |
- name: Checkout tap repository | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
path: tap | |
- name: Store tap Git SHA | |
id: tap_sha | |
run: | | |
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT | |
- name: Symlink homebrew tap | |
run: | | |
mkdir -p "$(brew --repo)/Library/Taps/jimeh" | |
ln -s "${{ github.workspace }}/tap" \ | |
"$(brew --repo)/Library/Taps/jimeh/homebrew-emacs-builds" | |
- name: brew livecheck (all casks) | |
if: ${{ github.event.inputs.cask == '' }} | |
run: >- | |
brew livecheck --json --quiet --tap jimeh/emacs-builds | |
| tee livecheck-results.json | |
- name: brew livecheck (specific cask) | |
if: ${{ github.event.inputs.cask != '' }} | |
run: >- | |
brew livecheck --json --quiet | |
jimeh/emacs-builds/${{ github.event.inputs.cask }} | |
| tee livecheck-results.json | |
- name: Upload livecheck-results.json artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: livecheck-results.json | |
path: livecheck-results.json | |
if-no-files-found: error | |
update-casks: | |
runs-on: macos-12 | |
needs: [emacs-builder, live-check] | |
steps: | |
- name: Checkout tap repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.live-check.outputs.tap_sha }} | |
path: tap | |
- name: Download pre-built emacs-builder artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: emacs-builder | |
path: bin | |
- name: Ensure emacs-builder is executable | |
run: chmod +x bin/emacs-builder | |
- name: Download livecheck-results.json artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: livecheck-results.json | |
path: ./ | |
- name: Update casks | |
run: >- | |
bin/emacs-builder | |
cask --builds-repository jimeh/emacs-builds | |
update --templates-dir tap/templates | |
${{ github.event.inputs.extraArgs }} | |
livecheck-results.json | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
update-meta: | |
runs-on: macos-12 | |
needs: [update-casks] | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout tap repository main branch | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
path: tap | |
- name: Symlink homebrew tap | |
run: | | |
mkdir -p "$(brew --repo)/Library/Taps/jimeh" | |
ln -s "${{ github.workspace }}/tap" \ | |
"$(brew --repo)/Library/Taps/jimeh/homebrew-emacs-builds" | |
- name: Checkout tap repository meta branch | |
uses: actions/checkout@v4 | |
with: | |
ref: meta | |
path: meta | |
- name: Install meta dependencies | |
run: brew bundle | |
working-directory: meta | |
- name: Update meta files | |
run: make update | |
working-directory: meta | |
- name: commit and push changes to meta branch | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: "chore(meta): update meta files" | |
repository: meta | |
branch: meta | |
commit_user_name: github-actions[bot] | |
commit_user_email: github-actions[bot]@users.noreply.github.com | |
commit_author: >- | |
github-actions[bot] <github-actions[bot]@users.noreply.github.com> | |
skip_dirty_check: false |