Skip to content

Commit 8b8a0ec

Browse files
committed
ci: use publish workflow
1 parent 5c7e857 commit 8b8a0ec

File tree

1 file changed

+14
-236
lines changed

1 file changed

+14
-236
lines changed

.github/workflows/publish.yml

Lines changed: 14 additions & 236 deletions
Original file line numberDiff line numberDiff line change
@@ -6,245 +6,23 @@ on:
66
push:
77
branches:
88
- master
9-
- dev
109
tags:
11-
- 'v[0-9]+.[0-9]+.[0-9]+'
12-
- 'v[0-9]+.[0-9]+.[0-9]+-**'
10+
- "v[0-9]+.[0-9]+.[0-9]+"
11+
- "v[0-9]+.[0-9]+.[0-9]+-**"
1312

1413
concurrency:
1514
group: ${{ github.workflow }}
16-
17-
env:
18-
REGISTRY: ghcr.io
19-
IMAGE_NAME: ${{ github.repository }}
15+
cancel-in-progress: false
2016

2117
jobs:
22-
docker:
23-
runs-on: ubuntu-latest
24-
permissions:
25-
packages: write
26-
steps:
27-
- uses: actions/checkout@v4
28-
- uses: docker/setup-qemu-action@v3
29-
- uses: docker/setup-buildx-action@v3
30-
- uses: docker/login-action@v3
31-
with:
32-
registry: ghcr.io
33-
username: ${{ github.repository_owner }}
34-
password: ${{ secrets.GITHUB_TOKEN }}
35-
- uses: docker/metadata-action@v4
36-
name: Generate tags
37-
id: meta
38-
with:
39-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
40-
tags: |
41-
type=ref,event=branch
42-
type=sha,prefix=
43-
type=semver,pattern={{version}}
44-
- uses: docker/build-push-action@v4
45-
with:
46-
context: .
47-
file: ./docker/Dockerfile
48-
platforms: linux/amd64,linux/arm64
49-
push: true
50-
tags: ${{ steps.meta.outputs.tags }}
51-
build-linux:
52-
runs-on: ubuntu-latest
53-
strategy:
54-
matrix:
55-
arch: [ amd64, arm64 ]
56-
steps:
57-
- uses: actions/checkout@v4
58-
- uses: actions/setup-go@v5
59-
with:
60-
go-version: 'stable'
61-
- name: Setup
62-
run: |
63-
go generate ./...
64-
if [ ${{ matrix.arch }} == "arm64" ]; then
65-
sudo apt update
66-
sudo apt install -y gcc-aarch64-linux-gnu
67-
echo "CC=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
68-
fi
69-
- name: Build ${{ matrix.arch }}
70-
env:
71-
CGO_ENABLED: 1
72-
GOOS: linux
73-
GOARCH: ${{ matrix.arch }}
74-
run: |
75-
mkdir -p release
76-
ZIP_OUTPUT=release/renterd_${GOOS}_${GOARCH}.zip
77-
go build -trimpath -o bin/ -a -ldflags '-s -w -linkmode external -extldflags "-static"' ./cmd/renterd
78-
cp README.md LICENSE bin/
79-
zip -qj $ZIP_OUTPUT bin/*
80-
- uses: actions/upload-artifact@v4
81-
with:
82-
name: renterd_linux_${{ matrix.arch }}
83-
path: release/*
84-
build-mac:
85-
runs-on: macos-latest
86-
strategy:
87-
matrix:
88-
arch: [ amd64, arm64 ]
89-
steps:
90-
- uses: actions/checkout@v4
91-
- uses: actions/setup-go@v5
92-
with:
93-
go-version: 'stable'
94-
- name: Setup Notarization
95-
env:
96-
APPLE_CERT_ID: ${{ secrets.APPLE_CERT_ID }}
97-
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
98-
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
99-
APPLE_KEY_B64: ${{ secrets.APPLE_KEY_B64 }}
100-
APPLE_CERT_B64: ${{ secrets.APPLE_CERT_B64 }}
101-
APPLE_CERT_PASSWORD: ${{ secrets.APPLE_CERT_PASSWORD }}
102-
APPLE_KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
103-
run: |
104-
# extract apple cert
105-
APPLE_CERT_PATH=$RUNNER_TEMP/apple_cert.p12
106-
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
107-
echo -n "$APPLE_CERT_B64" | base64 --decode --output $APPLE_CERT_PATH
108-
109-
# extract apple key
110-
mkdir -p ~/private_keys
111-
APPLE_API_KEY_PATH=~/private_keys/AuthKey_$APPLE_API_KEY.p8
112-
echo -n "$APPLE_KEY_B64" | base64 --decode --output $APPLE_API_KEY_PATH
113-
114-
# create temp keychain
115-
security create-keychain -p "$APPLE_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
116-
security default-keychain -s $KEYCHAIN_PATH
117-
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
118-
security unlock-keychain -p "$APPLE_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
119-
120-
# import keychain
121-
security import $APPLE_CERT_PATH -P $APPLE_CERT_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
122-
security find-identity -v $KEYCHAIN_PATH -p codesigning
123-
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $APPLE_KEYCHAIN_PASSWORD $KEYCHAIN_PATH
124-
125-
# generate
126-
go generate ./...
127-
- name: Build ${{ matrix.arch }}
128-
env:
129-
APPLE_CERT_ID: ${{ secrets.APPLE_CERT_ID }}
130-
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
131-
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
132-
APPLE_KEY_B64: ${{ secrets.APPLE_KEY_B64 }}
133-
APPLE_CERT_B64: ${{ secrets.APPLE_CERT_B64 }}
134-
APPLE_CERT_PASSWORD: ${{ secrets.APPLE_CERT_PASSWORD }}
135-
APPLE_KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
136-
CGO_ENABLED: 1
137-
GOOS: darwin
138-
GOARCH: ${{ matrix.arch }}
139-
run: |
140-
mkdir -p release
141-
ZIP_OUTPUT=release/renterd${{ env.ZIP_OUTPUT_SUFFIX }}_${GOOS}_${GOARCH}.zip
142-
go build -trimpath -o bin/ -a -ldflags '-s -w' ./cmd/renterd
143-
cp README.md LICENSE bin/
144-
/usr/bin/codesign --deep -f -v --timestamp -o runtime,library -s $APPLE_CERT_ID bin/renterd
145-
ditto -ck bin $ZIP_OUTPUT
146-
xcrun notarytool submit -k ~/private_keys/AuthKey_$APPLE_API_KEY.p8 -d $APPLE_API_KEY -i $APPLE_API_ISSUER --wait --timeout 10m $ZIP_OUTPUT
147-
- uses: actions/upload-artifact@v4
148-
with:
149-
name: renterd_darwin_${{ matrix.arch }}
150-
path: release/*
151-
build-windows:
152-
runs-on: windows-latest
153-
strategy:
154-
matrix:
155-
arch: [ amd64 ]
156-
steps:
157-
- uses: actions/checkout@v4
158-
- uses: actions/setup-go@v5
159-
with:
160-
go-version: 'stable'
161-
- name: Setup
162-
shell: bash
163-
run: |
164-
dotnet tool install --global AzureSignTool
165-
go generate ./...
166-
- name: Build ${{ matrix.arch }}
167-
env:
168-
CGO_ENABLED: 1
169-
GOOS: windows
170-
GOARCH: ${{ matrix.arch }}
171-
shell: bash
172-
run: |
173-
mkdir -p release
174-
ZIP_OUTPUT=release/renterd${{ env.ZIP_OUTPUT_SUFFIX }}_${GOOS}_${GOARCH}.zip
175-
go build -trimpath -o bin/ -a -ldflags '-s -w -linkmode external -extldflags "-static"' ./cmd/renterd
176-
azuresigntool sign -kvu "${{ secrets.AZURE_KEY_VAULT_URI }}" -kvi "${{ secrets.AZURE_CLIENT_ID }}" -kvt "${{ secrets.AZURE_TENANT_ID }}" -kvs "${{ secrets.AZURE_CLIENT_SECRET }}" -kvc ${{ secrets.AZURE_CERT_NAME }} -tr http://timestamp.digicert.com -v bin/renterd.exe
177-
cp README.md LICENSE bin/
178-
7z a $ZIP_OUTPUT bin/*
179-
- uses: actions/upload-artifact@v4
180-
with:
181-
name: renterd_windows_${{ matrix.arch }}
182-
path: release/*
183-
184-
combine-release-assets:
185-
runs-on: ubuntu-latest
186-
needs: [ build-linux, build-mac, build-windows ]
187-
steps:
188-
- name: Merge Artifacts
189-
uses: actions/upload-artifact/merge@v4
190-
with:
191-
name: renterd
192-
193-
dispatch-homebrew: # only runs on full releases
194-
if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-')
195-
needs: [ build-mac ]
196-
runs-on: ubuntu-latest
197-
steps:
198-
- name: Extract Tag Name
199-
id: get_tag
200-
run: echo "tag_name=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
201-
202-
- name: Dispatch
203-
uses: peter-evans/repository-dispatch@v3
204-
with:
205-
token: ${{ secrets.PAT_REPOSITORY_DISPATCH }}
206-
repository: siafoundation/homebrew-sia
207-
event-type: release-tagged
208-
client-payload: >
209-
{
210-
"description": "Renterd: The Next-Gen Sia Renter",
211-
"tag": "${{ env.tag_name }}",
212-
"project": "renterd",
213-
"workflow_id": "${{ github.run_id }}"
214-
}
215-
dispatch-linux: # run on full releases, release candidates, and master branch
216-
if: startsWith(github.ref, 'refs/tags/v') || endsWith(github.ref, 'master')
217-
needs: [ build-linux ]
218-
runs-on: ubuntu-latest
219-
steps:
220-
- name: Build Dispatch Payload
221-
id: get_payload
222-
uses: actions/github-script@v7
223-
with:
224-
script: |
225-
const isRelease = context.ref.startsWith('refs/tags/v'),
226-
isBeta = isRelease && context.ref.includes('-beta'),
227-
tag = isRelease ? context.ref.replace('refs/tags/', '') : 'master';
228-
229-
let component = 'nightly';
230-
if (isBeta) {
231-
component = 'beta';
232-
} else if (isRelease) {
233-
component = 'main';
234-
}
235-
236-
return {
237-
description: "renterd: The Next-Gen Sia Renter",
238-
tag: tag,
239-
project: "renterd",
240-
workflow_id: context.runId,
241-
component: component
242-
};
243-
244-
- name: Dispatch
245-
uses: peter-evans/repository-dispatch@v3
246-
with:
247-
token: ${{ secrets.PAT_REPOSITORY_DISPATCH }}
248-
repository: siafoundation/linux
249-
event-type: release-tagged
250-
client-payload: ${{ steps.get_payload.outputs.result }}
18+
publish:
19+
uses: SiaFoundation/workflows/.github/workflows/go-publish.yml@master
20+
secrets: inherit
21+
with:
22+
linux-build-args: -tags='timetzdata netgo' -trimpath -a -ldflags '-s -w -linkmode external -extldflags "-static"'
23+
windows-build-args: -tags='timetzdata netgo' -trimpath -a -ldflags '-s -w -linkmode external -extldflags "-static"'
24+
macos-build-args: -tags='timetzdata netgo' -trimpath -a -ldflags '-s -w'
25+
cgo-enabled: 1
26+
project: renterd
27+
project-desc: "renterd: The Next-Gen Sia Renter"
28+
version-tag: ${{ github.ref_name }}

0 commit comments

Comments
 (0)