Skip to content

Update Casks

Update Casks #2732

Workflow file for this run

---
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