@@ -9,193 +9,91 @@ permissions:
9
9
contents : write
10
10
11
11
jobs :
12
- goreleaser :
12
+ release :
13
13
runs-on : ubuntu-latest
14
14
environment : release
15
- steps :
16
- - uses : actions/checkout@v3
17
- with :
18
- submodules : true
19
- - name : setup release environment
20
- env :
21
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
22
- run : |-
23
- echo 'GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}}' > .release-env
24
- - name : build and upload goreleaser binaries
25
- run : make release
26
-
27
- x86_64 :
28
- strategy :
29
- matrix :
30
- os : [ubuntu-latest, macos-latest]
31
- needs : ["goreleaser"]
32
- runs-on : ${{ matrix.os }}
33
- environment : release
34
15
steps :
35
16
- uses : actions/checkout@v3
36
17
- uses : cachix/install-nix-action@v18
37
18
with :
38
19
nix_path : nixpkgs=channel:nixos-22.11
39
20
extra_nix_config : |
40
21
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
41
- - uses : apple-actions/import-codesign-certs@v1
42
- if : matrix.os == 'macos-latest'
43
- with :
44
- p12-file-base64 : ${{ secrets.MAC_CODE_SIGN_CERT }}
45
- p12-password : ${{ secrets.MAC_CODE_SIGN_CERT_PASS }}
46
22
- uses : cachix/cachix-action@v12
47
23
with :
48
24
name : cronos
49
25
signingKey : " ${{ secrets.CACHIX_SIGNING_KEY }}"
50
- - name : build linux/mac x86_64 binaries
51
- env :
52
- MAC_CODE_API_KEY : ${{ secrets.MAC_CODE_API_KEY }}
53
- MAC_CODE_API_KEY_ID : ${{ secrets.MAC_CODE_API_KEY_ID }}
54
- MAC_CODE_API_ISSUER_ID : ${{ secrets.MAC_CODE_API_ISSUER_ID }}
55
- MAC_CODE_API_DEVELOPER_ID : ${{ secrets.MAC_CODE_API_DEVELOPER_ID }}
56
- run : |
57
- PLATFORM="$(uname -s)_x86_64"
58
- BUILD_TYPE="tarball"
59
- FLAKE="github:${GITHUB_REPOSITORY}/${GITHUB_REF_NAME}"
60
-
61
- build() {
62
- NETWORK=$1
63
- nix build -L "${FLAKE}#cronosd${NETWORK}-${BUILD_TYPE}"
64
- OUTPUT="cronos_${GITHUB_REF_NAME:1}${NETWORK}_${PLATFORM}"
65
- if [ "$(uname -s)" == "Darwin" ]; then
66
- ./scripts/codesign_macos.sh ./result
67
- mv signed.tar.gz "$OUTPUT.tar.gz"
68
- else
69
- cp result "$OUTPUT.tar.gz"
70
- fi
71
- }
72
-
73
- build ""
74
- build "-testnet"
75
26
27
+ - name : build binaries
28
+ run : |
29
+ # install sha256sum
76
30
nix-env -i coreutils -f '<nixpkgs>'
77
- sha256sum *.tar.gz > "checksums-$PLATFORM.txt"
78
31
32
+ # build binaries
33
+ ./scripts/release.sh
34
+
35
+ # update checksum and upload
36
+ sha256sum *.tar.gz > "checksums.txt"
79
37
echo 'FILES<<EOF' >> $GITHUB_ENV
80
38
ls -1 *.tar.gz >> $GITHUB_ENV
81
39
ls -1 checksums-*.txt >> $GITHUB_ENV
82
40
echo 'EOF' >> $GITHUB_ENV
83
41
cat $GITHUB_ENV
84
- - name : upload linux/mac x86_64 binaries
42
+ - name : upload binaries
85
43
uses : softprops/action-gh-release@v1
86
44
with :
87
45
draft : true
88
46
files : " ${{ env.FILES }}"
89
47
90
- aarch64-linux :
91
- needs : ["goreleaser"]
92
- runs-on : ubuntu-latest
48
+ release-macos :
49
+ # runs sequentially to avoid creating duplicated release
50
+ needs : ["release"]
51
+ runs-on : macos-latest
93
52
environment : release
94
53
steps :
54
+ - uses : actions/checkout@v3
95
55
- uses : cachix/install-nix-action@v18
96
56
with :
97
57
nix_path : nixpkgs=channel:nixos-22.11
98
58
extra_nix_config : |
99
59
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
100
- - run : |
101
- DEBIAN_FRONTEND=noninteractive
102
- sudo apt-get update -q -y && sudo apt-get install -q -y qemu-system-aarch64 qemu-efi binfmt-support qemu-user-static
103
- mkdir -p ~/.config/nix
104
- sudo bash -c "echo system-features = aarch64-linux arm-linux >> /etc/nix/nix.conf"
60
+ - uses : apple-actions/import-codesign-certs@v1
61
+ with :
62
+ p12-file-base64 : ${{ secrets.MAC_CODE_SIGN_CERT }}
63
+ p12-password : ${{ secrets.MAC_CODE_SIGN_CERT_PASS }}
105
64
- uses : cachix/cachix-action@v12
106
65
with :
107
66
name : cronos
108
67
signingKey : " ${{ secrets.CACHIX_SIGNING_KEY }}"
109
- - name : build linux arm64 binaries
68
+ - name : build binaries
110
69
env :
111
- PLATFORM : Linux_arm64
70
+ MAC_CODE_API_KEY : ${{ secrets.MAC_CODE_API_KEY }}
71
+ MAC_CODE_API_KEY_ID : ${{ secrets.MAC_CODE_API_KEY_ID }}
72
+ MAC_CODE_API_ISSUER_ID : ${{ secrets.MAC_CODE_API_ISSUER_ID }}
73
+ MAC_CODE_API_DEVELOPER_ID : ${{ secrets.MAC_CODE_API_DEVELOPER_ID }}
112
74
run : |
113
- BUILD_TYPE="tarball"
114
- FLAKE="github:${GITHUB_REPOSITORY}/${GITHUB_REF_NAME}"
115
-
116
- nix build -L --extra-platforms aarch64-linux ${FLAKE}#packages.aarch64-linux.cronosd-$BUILD_TYPE
117
- cp result cronos_${GITHUB_REF_NAME:1}_${PLATFORM}.tar.gz
75
+ # install sha256sum
76
+ nix-env -i coreutils -f '<nixpkgs>'
118
77
119
- nix build -L --extra-platforms aarch64-linux ${FLAKE}#packages.aarch64-linux.cronosd-testnet-$BUILD_TYPE
120
- cp result cronos_${GITHUB_REF_NAME:1}-testnet_${PLATFORM}.tar.gz
78
+ # build binaries
79
+ ./scripts/release.sh
121
80
122
- sha256sum *.tar.gz > checksums-$PLATFORM.txt
81
+ # codesign
82
+ for tarball in *.tar.gz;
83
+ do
84
+ ./scripts/codesign_macos.sh $tarball
85
+ mv signed.tar.gz $tarball
86
+ done
123
87
88
+ # update checksum and upload
89
+ sha256sum *.tar.gz > "checksums-macos.txt"
124
90
echo 'FILES<<EOF' >> $GITHUB_ENV
125
91
ls -1 *.tar.gz >> $GITHUB_ENV
126
92
ls -1 checksums-*.txt >> $GITHUB_ENV
127
93
echo 'EOF' >> $GITHUB_ENV
128
94
cat $GITHUB_ENV
129
- - name : upload linux arm64 binaries
95
+ - name : upload binaries
130
96
uses : softprops/action-gh-release@v1
131
97
with :
132
98
draft : true
133
99
files : " ${{ env.FILES }}"
134
-
135
- x86_64-windows :
136
- needs : ["goreleaser"]
137
- runs-on : windows-latest
138
- environment : release
139
- steps :
140
- - name : get source
141
- uses : actions/checkout@v3
142
- with :
143
- submodules : true
144
- - name : setup msys2
145
- uses : msys2/setup-msys2@v2
146
- with :
147
- msystem : MINGW64
148
- update : false
149
- install : git msys2-devel base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-rocksdb mingw-w64-x86_64-go mingw-w64-x86_64-jq mingw-w64-x86_64-dlfcn
150
- - name : get rocksdb & build
151
- env :
152
- PLATFORM : Windows_x86_64
153
- shell : msys2 {0}
154
- run : |
155
- uname -a
156
- export GOROOT=/mingw64/lib/go
157
- export GOPATH=$HOME/go
158
- export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
159
- export CGO_CFLAGS="-I/mingw64/include/rocksdb"
160
- export CGO_LDFLAGS="-L/mingw64/lib -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd"
161
- echo $PATH
162
- go version
163
- wget https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-rocksdb-6.26.1-1-any.pkg.tar.zst
164
- pacman -U mingw-w64-x86_64-rocksdb-6.26.1-1-any.pkg.tar.zst --noconfirm
165
- COSMOS_BUILD_OPTIONS=rocksdb make build
166
- ls -la ./build/
167
- mv ./build/cronosd ./build/cronosd.exe
168
- cp /mingw64/bin/libbz2-1.dll ./build
169
- cp /mingw64/bin/libgcc_s_seh-1.dll ./build
170
- cp /mingw64/bin/liblz4.dll ./build
171
- cp /mingw64/bin/librocksdb.dll ./build
172
- cp /mingw64/bin/libsnappy.dll ./build
173
- cp /mingw64/bin/libstdc++-6.dll ./build
174
- cp /mingw64/bin/libwinpthread-1.dll ./build
175
- cp /mingw64/bin/libzstd.dll ./build
176
- cp /mingw64/bin/zlib1.dll ./build
177
- cd ./build
178
- tar cvfz ../cronos.tar.gz *
179
- cd ..
180
- mv ./cronos.tar.gz cronos_${GITHUB_REF_NAME:1}_${PLATFORM}.tar.gz
181
- NETWORK=testnet COSMOS_BUILD_OPTIONS=rocksdb make build
182
- mv ./build/cronosd ./build/cronosd.exe
183
- cd ./build
184
- tar cvfz ../cronos.tar.gz *
185
- cd ..
186
- mv ./cronos.tar.gz cronos_${GITHUB_REF_NAME:1}-testnet_${PLATFORM}.tar.gz
187
- ls -la cronos_*.tar.gz
188
- sha256sum cronos_*.tar.gz > "checksums-$PLATFORM.txt"
189
- echo "OK"
190
- echo 'FILES<<EOF' >> $GITHUB_ENV
191
- ls -1 *.tar.gz >> $GITHUB_ENV
192
- ls -1 checksums-*.txt >> $GITHUB_ENV
193
- echo 'EOF' >> $GITHUB_ENV
194
- cat $GITHUB_ENV
195
- - name : upload
196
- env :
197
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
198
- uses : softprops/action-gh-release@v1
199
- with :
200
- draft : true
201
- files : " ${{ env.FILES }}"
0 commit comments