Skip to content

Commit 5c4fdba

Browse files
committed
Test Homebrew releases
1 parent b97f325 commit 5c4fdba

File tree

1 file changed

+37
-8
lines changed

1 file changed

+37
-8
lines changed

.github/workflows/build.yml

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,25 @@ concurrency:
1818
cancel-in-progress: true
1919

2020
jobs:
21-
crate_metadata:
21+
meta:
2222
name: Extract crate metadata
2323
runs-on: ubuntu-latest
2424
steps:
2525
- uses: actions/checkout@v4
2626
- name: Extract crate information
27-
id: crate_metadata
27+
id: meta
2828
run: |
2929
cargo metadata --no-deps --format-version 1 | jq -r '"name=" + .packages[0].name' | tee -a $GITHUB_OUTPUT
3030
cargo metadata --no-deps --format-version 1 | jq -r '"version=" + .packages[0].version' | tee -a $GITHUB_OUTPUT
31+
echo "tag=${GITHUB_REF#refs/tags/}" | tee -a $GITHUB_OUTPUT
3132
outputs:
32-
name: ${{ steps.crate_metadata.outputs.name }}
33-
version: ${{ steps.crate_metadata.outputs.version }}
33+
name: ${{ steps.meta.outputs.name }}
34+
version: ${{ steps.meta.outputs.version }}
35+
tag: ${{ steps.meta.outputs.tag }}
3436

3537
build:
3638
name: Build (${{ matrix.job.short_target }})
37-
needs: [crate_metadata]
39+
needs: [meta]
3840
strategy:
3941
fail-fast: false
4042
max-parallel: 3
@@ -77,12 +79,16 @@ jobs:
7779
run: |
7880
PACKAGE_DIR="target/package"
7981
mkdir -p "$PACKAGE_DIR"
80-
PACKAGE_NAME="display_switch-v${{ needs.crate_metadata.outputs.version }}-${{ matrix.job.short_target }}.zip"
82+
PACKAGE_NAME="display_switch-v${{ needs.meta.outputs.version }}-${{ matrix.job.short_target }}.zip"
8183
PACKAGE_FILE="$PACKAGE_DIR/$PACKAGE_NAME"
8284
shopt -s extglob # To match the filename below (without any debug symbols)
8385
zip -j $PACKAGE_FILE target/release/display_switch?(.exe) README.md LICENSE
8486
echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_OUTPUT
8587
echo "PACKAGE_FILE=$PACKAGE_FILE" >> $GITHUB_OUTPUT
88+
if [[ ${{ matrix.job.os }} == 'macos-latest' ]]; then
89+
echo "HOMEBREW_PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_OUTPUT
90+
echo "HOMEBREW_PACKAGE_HASH=$(sha256 -q $PACKAGE_FILE)" >> $GITHUB_OUTPUT
91+
fi
8692
8793
- uses: actions/upload-artifact@v4
8894
with:
@@ -94,6 +100,29 @@ jobs:
94100
uses: softprops/action-gh-release@v2
95101
if: startsWith(github.ref, 'refs/tags/')
96102
with:
97-
draft: true # temporary, for testing
103+
prerelease: ${{ contains(github.ref, 'prerelease') }}
98104
generate_release_notes: true
99-
files: ${{ steps.package.outputs.PACKAGE_FILE }}
105+
files: ${{ steps.package.outputs.PACKAGE_FILE }}
106+
107+
outputs:
108+
packages: ${{ steps.package.outputs.PACKAGE_NAME }}
109+
homebrew_package_name: ${{ steps.package.outputs.HOMEBREW_PACKAGE_NAME }}
110+
homebrew_package_hash: ${{ steps.package.outputs.HOMEBREW_PACKAGE_HASH }}
111+
112+
update_homebrew:
113+
name: Update Homebrew formula
114+
needs: [meta, build]
115+
runs-on: ubuntu-latest
116+
steps:
117+
- uses: actions/checkout@v4
118+
- name: Update Homebrew formula
119+
uses: mislav/bump-homebrew-formula-action@v3
120+
if: startsWith(github.ref, 'refs/tags/')
121+
with:
122+
formula-name: display_switch
123+
tag-name: ${{ needs.meta.outputs.tag }}
124+
homebrew-tap: haimgel/tools
125+
download-url: https://github.com/haimgel/display-switch/releases/download/${{ needs.meta.outputs.tag }}/${{ needs.build.outputs.homebrew_package_name }}
126+
download-sha256: ${{ needs.build.outputs.homebrew_package_hash }}
127+
env:
128+
COMMITTER_TOKEN: ${{ secrets.RELEASER_GITHUB_TOKEN }}

0 commit comments

Comments
 (0)