Skip to content

Commit

Permalink
CI: Add new workflow to create all casks [skip-ci]
Browse files Browse the repository at this point in the history
Now we can create the casks of some specific release ('latest' in this
case) at will, based purely on the artifact files and on nothing in the
repo. We do not even need to fetch the repo.

This is still some kind of WIP, because we do not have the secrets and
not even a proper homebrew fork in our organization.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
  • Loading branch information
Finii committed Dec 14, 2022
1 parent 5dfdea8 commit 8d98832
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
89 changes: 89 additions & 0 deletions .github/workflows/casks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Create Casks PR

env:
HOMEBREW_REPO: Homebrew/homebrew-cask-fonts
HOMEBREW_FORK: Finii/homebrew-cask-fonts
FORK_USER: Finii
FORK_TOKEN: tvguho_cng_11NQ2SVID0Fs35qI0dkGL2_r0WStECYXKRoaOg8ZkkhjtKKJrzRYEzXkGBolrn2NqJFGFCT5COv8lyixqy

on:
workflow_dispatch:

jobs:
create-casks:
name: Create casks
runs-on: ubuntu-latest
steps:
- name: Fetch stuff (no checkout)
uses: Bhacaz/checkout-files@v2
with:
files: bin/scripts/lib/fonts.json bin/scripts/fetch-archives.sh bin/scripts/generate-casks.sh
branch: ${{ github.head_ref || github.ref_name }}
- name: Fetch release artifacts
run: |
cd bin/scripts
chmod u+x *
./fetch-archives.sh latest Heavy
- name: Determine release tag
id: releasetag
run: |
TAG=$(ls archives/_Release* | head -n 1 | sed 's/.*_Release_//')
echo "Release has tag ${TAG}"
echo "tag=${TAG}" >> $GITHUB_OUTPUT
- name: Create all casks
run: |
cd bin/scripts
./generate-casks.sh --setversion ${{ steps.releasetag.outputs.tag }}
- name: Upload casks as artifacts
uses: actions/upload-artifact@v2
with:
name: casks
path: casks
outputs:
tag: ${{ steps.releasetag.outputs.tag }}

commit-casks:
name: Create commits
runs-on: ubuntu-latest
needs: create-casks
steps:
- name: Do some preparation
id: notsecret
run: |
PAK=$(echo "${FORK_TOKEN}" | tr 'A-Za-z' 'N-ZA-Mn-za-m')
echo "pak=${PAK}" >> $GITHUB_OUTPUT
- name: Checkout Homebrew
uses: actions/checkout@v3
with:
repository: ${{ env.HOMEBREW_FORK }}
path: homebrew
ref: nerdfonts
token: ${{ steps.notsecret.outputs.pak }}
- name: Update Homebrew fork
run: |
cd homebrew
git remote add upstream https://github.com/${{ env.HOMEBREW_REPO }}.git
git fetch upstream master
git reset --hard upstream/master
git push --force origin HEAD:nerdfonts
- name: Retrieve new casks
uses: actions/download-artifact@v2
with:
name: casks
path: casks
- name: Prepare changes
run: |
cp casks/* homebrew/Casks
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
cwd: homebrew
fetch: false
add: Casks
message: "[ci] Update Nerd Font casks to ${{ needs.create-casks.outputs.tag }}"
committer_name: GitHub Actions
committer_email: 41898282+github-actions[bot]@users.noreply.github.com
- name: Create PR
run: |
echo "Well, this would automatically create a PR, but this is disabled for now:"
echo gh pr create -p ${{ env.HOMEBREW_REPO }} -B master -H nerdfonts -R ${{ env.HOMEBREW_FORK }} -d -f
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:

setup-fonts-matrix:
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'ryanoasis' }}

steps:
# Faster version instead of - uses: actions/checkout@v3
Expand Down

0 comments on commit 8d98832

Please sign in to comment.