Skip to content

Commit

Permalink
feat: build brew tap + push PR in CI
Browse files Browse the repository at this point in the history
  • Loading branch information
cfoust committed Dec 17, 2023
1 parent 64250f6 commit ef3369e
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 11 deletions.
77 changes: 74 additions & 3 deletions .github/workflows/build-artifacts-and-draft-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,13 @@ jobs:
- name: Build
uses: goreleaser/goreleaser-action@v5
with:
args: release --skip-publish --config ci/goreleaser-for-linux.yaml
args: release --skip=publish --config ci/goreleaser-for-linux.yaml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Copy homebrew
run: |
cp dist/homebrew/cy.rb dist/cy.rb
rm dist/*/cy
- name: Upload
uses: actions/upload-artifact@v3
with:
Expand All @@ -55,9 +59,13 @@ jobs:
- name: Build
uses: goreleaser/goreleaser-action@v5
with:
args: release --skip-publish --config ci/goreleaser-for-darwin.yaml
args: release --skip=publish --config ci/goreleaser-for-darwin.yaml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Copy homebrew
run: |
cp dist/homebrew/cy.rb dist/cy.rb
rm dist/*/cy
- name: Upload
uses: actions/upload-artifact@v3
with:
Expand Down Expand Up @@ -85,14 +93,77 @@ jobs:
with:
name: cy-darwin
path: ./cy-build/darwin
- name: Create tap PR
run: |
# Remove last line from darwin formula
sed '$d' ./cy-build/darwin/cy.rb > cy.rb
# Include all other lines from linux
sed -n '/on_linux/,$p' ./cy-build/linux/cy.rb >> cy.rb
TAG=$(git describe --tags --always --abbrev=0)
# Remove "v"
TAG=${TAG:1}
# Create versioned formula
cp cy.rb "cy@${TAG}.rb"
# PR flow inspired by:
# https://github.com/orgs/community/discussions/49745#discussioncomment-5275999
REPOSITORY="cfoust/homebrew-taps"
DIRECTORY="homebrew-taps"
BRANCH="feat/update-to-$TAG"
# Clone the remote repository and change working directory to the
# folder it was cloned to.
git clone \
--depth=1 \
--branch=main \
https://some-user:${{ secrets.ACCESS_TOKEN }}@github.com/$REPOSITORY \
$DIRECTORY
cd $DIRECTORY
# Setup the committers identity.
git config user.email "[email protected]"
git config user.name "CyBot"
# Create a new feature branch for the changes.
git checkout -b $BRANCH
# Update the script files to the latest version.
cp ../cy*.rb .
# Commit the changes and push the feature branch to origin
git add .
git commit -m "feat: update cy formula to $TAG"
git push origin "$BRANCH"
# Store the PAT in a file that can be accessed by the
# GitHub CLI.
echo "${{ secrets.ACCESS_TOKEN }}" > token.txt
# Authorize GitHub CLI for the current repository and
# create a pull-requests containing the updates.
gh auth login --with-token < token.txt
gh pr create \
--body "" \
--title "update cy to $TAG" \
--head "$BRANCH" \
--base "main"
cd ..
rm *.rb
rm -r "$DIRECTORY"
- name: Merge checksum file
run: |
cd ./cy-build
cat ./darwin/cy*checksums.txt >> checksums.txt
cat ./linux/cy*checksums.txt >> checksums.txt
rm ./darwin/cy*checksums.txt
rm ./linux/cy*checksums.txt
rm cy
# where do these come from?
rm -f cy{,.rb} linux/cy{,.rb} darwin/cy{,.rb}
- name: Release
uses: goreleaser/goreleaser-action@v5
with:
Expand Down
8 changes: 8 additions & 0 deletions ci/goreleaser-for-darwin.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,11 @@ builds:
- arm64
snapshot:
name_template: "{{ incpatch .Version }}-next"
brews:
- skip_upload: true
homepage: "https://github.com/cfoust/cy"
description: "The time-traveling terminal multiplexer."
license: "MIT"
repository:
owner: cfoust
name: homebrew-taps
6 changes: 5 additions & 1 deletion ci/goreleaser-for-linux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ builds:
- BUILD_USER="unknown"
goos:
- linux
# We currently cannot run mysqlbinlog on arm64.
goarch:
- amd64
overrides:
Expand All @@ -54,3 +53,8 @@ builds:
- CC=gcc
snapshot:
name_template: "{{ incpatch .Version }}-next"
brews:
- skip_upload: true
repository:
owner: cfoust
name: homebrew-taps
8 changes: 1 addition & 7 deletions ci/goreleaser-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,6 @@ release:
header: |
# What's Changed
## 🚀 Features
## 🎄 Enhancements
## 🎠 Community
## New Contributors
## Features
## Code Diff

0 comments on commit ef3369e

Please sign in to comment.