-
Notifications
You must be signed in to change notification settings - Fork 1
/
date
177 lines (159 loc) · 5.76 KB
/
date
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
name: Release
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
jobs:
release:
name: Create GitHub release
runs-on: ubuntu-22.04
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
current_version: ${{ steps.get_version.outputs.current_version }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get the version
id: get_version
run: echo ::set-output name=current_version::${GITHUB_REF#refs/tags/}
- name: Create Release ${{ github.ref }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: false
prerelease: contains(github.ref, '-')
# draft: true # we would like to publish a draft, but brew needs the release to be publis
- name: Update formula release
uses: marcprux/update-homebrew-formula-action@main
env:
GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_FAIRTOOL_PUBLISH_TOKEN }}
with:
repository: fair-ground/Fair
tap: fair-ground/homebrew-tool
name: fairtool
formula: Formula/fairtool.rb
bottle_macos:
name: Homebrew bottle (macOS)
runs-on: macos-12
needs: [release]
steps:
- name: Build bottle (x86_64)
run: |
#HOMEBREW_FAIRTOOL_ARCH="x86_64"
brew install --build-bottle --verbose fair-ground/tool/fairtool
file `which fairtool`
fairtool version
brew bottle --no-rebuild --verbose fair-ground/tool/fairtool
ls -la *.gz
brew remove fair-ground/tool/fairtool
# There's something hinky with the bottling process;
# about 1/2 the time it produces a very corrupt binary
# that will yield the error:
# exec format error: fairtool
# This step will extract the binary and make sure it
# can really be run before continuing with the
# bottling process.
- name: Verify bottle (x86_64)
run: |
TD=`mktemp -d`
cp -av fairtool--*.bottle.tar.gz "${TD}"
cd "${TD}"
tar xvzf fairtool--*.bottle.tar.gz
file ./fairtool/*/bin/fairtool
./fairtool/*/bin/fairtool version
cd -
- name: Upload bottle (x86_64)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
asset_path: ./fairtool--${{ needs.release.outputs.current_version }}.monterey.bottle.tar.gz
asset_name: fairtool-${{ needs.release.outputs.current_version }}.monterey.bottle.tar.gz
asset_content_type: application/gzip
- name: Build bottle (arm64)
run: |
HOMEBREW_FAIRTOOL_ARCH="arm64" brew install --build-bottle --verbose fair-ground/tool/fairtool
file `which fairtool`
# fairtool version # no reverse-rosetta
brew bottle --no-rebuild --verbose fair-ground/tool/fairtool
ls -la *.gz
brew remove fair-ground/tool/fairtool
- name: Upload bottle (arm64)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
asset_path: ./fairtool--${{ needs.release.outputs.current_version }}.monterey.bottle.tar.gz
asset_name: fairtool-${{ needs.release.outputs.current_version }}.arm64_monterey.bottle.tar.gz
asset_content_type: application/gzip
bottle_linux:
name: Homebrew bottle (linux)
runs-on: ubuntu-22.04
needs: [release]
steps:
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
Thu Dec 1 08:47:59 EST 2022
AUTHORS.txt
CONTRIBUTION.txt
Info.plist
Info.swift
LICENSE.AGPL
LICENSE_EXCEPTION.FAIR
Package.swift
Plugins
README.md
Sources
Tests
docs
run: |
brew tap fair-ground/tool
brew install --build-bottle --verbose fair-ground/tool/fairtool
fairtool version
brew bottle --no-rebuild --verbose fair-ground/tool/fairtool
ls -la *.gz
brew remove fair-ground/tool/fairtool
- name: Upload bottle
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
asset_path: ./fairtool--${{ needs.release.outputs.current_version }}.x86_64_linux.bottle.tar.gz
asset_name: fairtool-${{ needs.release.outputs.current_version }}.x86_64_linux.bottle.tar.gz
asset_content_type: application/gzip
update_bottle:
name: Add bottles to formula
runs-on: ubuntu-22.04
needs: [release, bottle_macos, bottle_linux]
steps:
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- uses: marcprux/update-homebrew-formula-action@main
env:
GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_FAIRTOOL_PUBLISH_TOKEN }}
with:
repository: fair-ground/Fair
tap: fair-ground/homebrew-tool
name: fairtool
formula: Formula/fairtool.rb
message: |
Add bottles for fairtool ${{ needs.release.outputs.current_version }}
- name: Publish release
if: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release edit "${{ needs.release.outputs.current_version }}" --draft=false
- name: Check released bottle
run: |
brew install --force-bottle fair-ground/tool/fairtool
fairtool version