Files
homebrew-emacs-builds/.github/workflows/update-casks.yml
Workflow config file is invalid. Please check your config file: yaml: unmarshal errors: line 3: cannot unmarshal !!str `jimeh/h...` into model.RawConcurrency
Jim Myhrberg 6bb84e6798 ci(daily): run update casks workflow at 3pm instead of 3am
The nightly builds which start around 11pm can sometimes take hours to
run, so 3am is too early to guarantee that any/all nightly builds are
complete.
2024-10-26 16:14:55 +01:00

146 lines
4.4 KiB
YAML

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