Skip to content

Commit 90dc321

Browse files
committed
workflow: add download artifacts for Release
1 parent 791f41b commit 90dc321

File tree

2 files changed

+58
-32
lines changed

2 files changed

+58
-32
lines changed

.github/workflows/release.yml

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,9 @@ jobs:
5454
make android
5555
env:
5656
USE_SYSTEM_PROTOC: "true"
57-
- name: Upload to aliyun OSS
57+
- name: Upload artifacts to aliyun OSS
5858
run: |
5959
tar -czvf jsar-runtime-android.tar.gz ./build/output/release/aarch64-linux-android
60-
ls -lsh ./
6160
node ./tools/upload-aliyun.mjs ${{ github.event.inputs.tag_name }} ./jsar-runtime-android.tar.gz
6261
env:
6362
ALIYUN_ACCESS_KEY_ID: ${{ secrets.ALIYUN_ACCESS_KEY_ID }}
@@ -98,13 +97,14 @@ jobs:
9897
make darwin
9998
env:
10099
USE_SYSTEM_PROTOC: "true"
101-
- name: Upload artifacts
102-
uses: actions/upload-artifact@v2
103-
with:
104-
name: jsar-runtime-darwin
105-
path: './build/output/release/universal-apple-darwin'
106-
if-no-files-found: error
107-
retention-days: 1
100+
- name: Upload artifacts to aliyun OSS
101+
run: |
102+
tar -czvf jsar-runtime-darwin.tar.gz ./build/output/release/universal-apple-darwin
103+
node ./tools/upload-aliyun.mjs ${{ github.event.inputs.tag_name }} ./jsar-runtime-darwin.tar.gz
104+
env:
105+
ALIYUN_ACCESS_KEY_ID: ${{ secrets.ALIYUN_ACCESS_KEY_ID }}
106+
ALIYUN_ACCESS_KEY_SECRET: ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }}
107+
ALIYUN_BUCKET: ${{ secrets.ALIYUN_BUCKET }}
108108

109109
build-windows:
110110
runs-on: windows-latest
@@ -139,13 +139,14 @@ jobs:
139139
make windows
140140
env:
141141
USE_SYSTEM_PROTOC: "true"
142-
- name: Upload artifacts
143-
uses: actions/upload-artifact@v2
144-
with:
145-
name: jsar-runtime-windows
146-
path: './build/output/release/x86_64-pc-windows-msvc'
147-
if-no-files-found: error
148-
retention-days: 1
142+
- name: Upload artifacts to aliyun OSS
143+
run: |
144+
tar -czvf jsar-runtime-windows.tar.gz ./build/output/release/x86_64-pc-windows-msvc
145+
node ./tools/upload-aliyun.mjs ${{ github.event.inputs.tag_name }} ./jsar-runtime-windows.tar.gz
146+
env:
147+
ALIYUN_ACCESS_KEY_ID: ${{ secrets.ALIYUN_ACCESS_KEY_ID }}
148+
ALIYUN_ACCESS_KEY_SECRET: ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }}
149+
ALIYUN_BUCKET: ${{ secrets.ALIYUN_BUCKET }}
149150

150151
release:
151152
runs-on: ubuntu-latest
@@ -154,24 +155,18 @@ jobs:
154155
contents: write
155156
steps:
156157
- uses: actions/checkout@v3
157-
- name: Download Android artifact
158-
uses: actions/download-artifact@v2
159-
with:
160-
name: jsar-runtime-android
161-
path: out/android
162-
- name: Download macOS artifact
163-
uses: actions/download-artifact@v2
164-
with:
165-
name: jsar-runtime-darwin
166-
path: out/darwin
167-
- name: Download Windows artifact
168-
uses: actions/download-artifact@v2
169-
with:
170-
name: jsar-runtime-windows
171-
path: out/windows
158+
- name: Download artifacts from aliyun OSS
159+
run: |
160+
node ./tools/download-aliyun.mjs ${{ github.event.inputs.tag_name }} jsar-runtime-android.tar.gz
161+
node ./tools/download-aliyun.mjs ${{ github.event.inputs.tag_name }} jsar-runtime-darwin.tar.gz
162+
node ./tools/download-aliyun.mjs ${{ github.event.inputs.tag_name }} jsar-runtime-windows.tar.gz
163+
ls -lsh ./*.tar.gz
172164
- name: Create package
173165
run: |
174-
cp -r src/proto out/
166+
mkdir -p out/android && tar -xvf jsar-runtime-android.tar.gz -C out/android
167+
mkdir -p out/darwin && tar -xvf jsar-runtime-darwin.tar.gz -C out/darwin
168+
mkdir -p out/windows && tar -xvf jsar-runtime-windows.tar.gz -C out/windows
169+
mkdir -p out && cp -r src/proto out/
175170
tar -czvf jsar-runtime-release.tar.gz out/
176171
- name: Create Release
177172
uses: softprops/action-gh-release@v1

tools/download-aliyun.mjs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import path from 'path';
2+
import OSS from 'ali-oss';
3+
4+
const args = process.argv.slice(2);
5+
const [ version, filename ] = args;
6+
7+
if (!version || !version.startsWith('amidala-v')) {
8+
throw new Error('a valid version must be "amidala-v*", such as "amidala-v1.0.0"')
9+
}
10+
if (!filename) {
11+
throw new Error('a valid filename must be provided')
12+
}
13+
14+
const ossFilename = path.join(version, filename);
15+
const artifactFilename = new URL(path.join('../', filename), import.meta.url);
16+
console.log(`ossFilename: ${ossFilename}`);
17+
console.log(`artifactFilename: ${artifactFilename}`);
18+
19+
const store = new OSS({
20+
region: 'oss-cn-hangzhou',
21+
accessKeyId: process.env.ALIYUN_ACCESS_KEY_ID,
22+
accessKeySecret: process.env.ALIYUN_ACCESS_KEY_SECRET,
23+
bucket: process.env.ALIYUN_BUCKET,
24+
});
25+
26+
console.info(`downloading ${ossFilename}...`);
27+
const resp = await store.get(
28+
`web-assets/yodaos-jsar/runtime-artifacts/${ossFilename}`,
29+
artifactFilename.href
30+
);
31+
console.info(resp);

0 commit comments

Comments
 (0)