-
Notifications
You must be signed in to change notification settings - Fork 1
146 lines (127 loc) · 3.66 KB
/
Copy pathrelease.yaml
File metadata and controls
146 lines (127 loc) · 3.66 KB
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
name: release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
test:
uses: ./.github/workflows/test.yaml
ui-dist:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: ui/pnpm-lock.yaml
- name: Build UI
run: |
cd ui
pnpm install --frozen-lockfile
pnpm run build
- name: Package UI dist
run: tar czf aisets-ui-dist.tar.gz -C ui/dist .
- name: Upload UI dist artifact
uses: actions/upload-artifact@v4
with:
name: aisets-ui-dist
path: aisets-ui-dist.tar.gz
if-no-files-found: error
package:
needs: test
strategy:
fail-fast: false
matrix:
include:
- goos: linux
goarch: amd64
runner: ubuntu-latest
- goos: linux
goarch: arm64
runner: ubuntu-24.04-arm
- goos: darwin
goarch: amd64
runner: macos-15-intel
- goos: darwin
goarch: arm64
runner: macos-14
- goos: windows
goarch: amd64
runner: windows-latest
- goos: windows
goarch: arm64
runner: windows-11-arm
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: dtolnay/rust-toolchain@stable
- name: Install native image dependencies
shell: bash
run: |
case "$RUNNER_OS" in
Linux)
sudo apt-get update
sudo apt-get install -y nasm libdav1d-dev
;;
macOS)
brew list nasm >/dev/null 2>&1 || brew install nasm
brew list dav1d >/dev/null 2>&1 || brew install dav1d
;;
Windows)
choco install nasm -y
;;
esac
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
tools/imgtools/target
key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('tools/imgtools/Cargo.lock') }}
- name: Build release archive
shell: bash
env:
VERSION: ${{ github.ref_name }}
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
OUT_DIR: dist/release
run: bash scripts/package-release.sh
- name: Upload release archive artifact
uses: actions/upload-artifact@v4
with:
name: aisets-${{ matrix.goos }}-${{ matrix.goarch }}
path: dist/release/aisets_*
if-no-files-found: error
publish:
needs:
- ui-dist
- package
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Prepare release assets
run: |
mkdir -p release-assets
find artifacts -maxdepth 3 -type f -print -exec cp {} release-assets/ \;
cd release-assets
find . -maxdepth 1 -type f ! -name checksums.txt -print | sort | while read -r file; do
sha256sum "$file" | awk -v name="${file#./}" '{ print $1 " " name }'
done > checksums.txt
cat checksums.txt
- name: Publish GitHub release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: release-assets/*