5
5
name : Build
6
6
7
7
jobs :
8
- linux-x86_64 :
9
- runs-on : ubuntu-20.04
10
- defaults :
11
- run :
12
- shell : bash
13
- steps :
14
- - name : Checkout
15
- uses : actions/checkout@v3
16
- with :
17
- submodules : recursive
18
- - name : Install Rust
19
- uses : actions-rs/toolchain@v1
20
- - name : Build
21
- run : cargo build --release --target x86_64-unknown-linux-gnu
22
- - name : Pack
23
- run : |
24
- cp target/x86_64-unknown-linux-gnu/release/colink-server ./
25
- tar -zcvf colink-server-linux-x86_64.tar.gz colink-server README.md user_init_config.template.toml
26
- - name : Upload Release Asset
27
- uses : actions/upload-release-asset@v1
28
- env :
29
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
30
- with :
31
- upload_url : ${{ github.event.release.upload_url }}
32
- asset_path : colink-server-linux-x86_64.tar.gz
33
- asset_name : colink-server-linux-x86_64.tar.gz
34
- asset_content_type : application/tar+gzip
35
-
36
- linux-x86_64-musl :
37
- runs-on : ubuntu-latest
8
+ build :
9
+ strategy :
10
+ matrix :
11
+ platform : [linux-x86_64, linux-x86_64-musl, macos-x86_64]
12
+ include :
13
+ - platform : linux-x86_64
14
+ ci_image : ubuntu-20.04
15
+ cargo_target : x86_64-unknown-linux-gnu
16
+ - platform : linux-x86_64-musl
17
+ ci_image : ubuntu-latest
18
+ cargo_target : x86_64-unknown-linux-musl
19
+ - platform : macos-x86_64
20
+ ci_image : macos-12
21
+ cargo_target : x86_64-apple-darwin
22
+ runs-on : ${{ matrix.ci_image }}
38
23
defaults :
39
24
run :
40
25
shell : bash
@@ -46,21 +31,25 @@ jobs:
46
31
- name : Install Rust
47
32
uses : actions-rs/toolchain@v1
48
33
with :
49
- target : x86_64-unknown-linux-musl
34
+ target : ${{ matrix.cargo_target }}
35
+ - name : Install musl
36
+ if : ${{ endsWith(matrix.cargo_target, 'musl') }}
37
+ run : sudo apt update && sudo apt install musl-tools
50
38
- name : Build
51
- run : |
52
- sudo apt update && sudo apt install musl-tools
53
- cargo build --release --target x86_64-unknown-linux-musl
39
+ run : cargo build --release --target ${{ matrix.cargo_target }}
54
40
- name : Pack
55
41
run : |
56
- cp target/x86_64-unknown-linux-musl /release/colink-server ./
57
- tar -zcvf colink-server-linux-x86_64-musl .tar.gz colink-server README.md user_init_config.template.toml
42
+ cp target/${{ matrix.cargo_target }} /release/colink-server ./
43
+ tar -zcvf colink-server-${{ matrix.platform }} .tar.gz colink-server README.md user_init_config.template.toml
58
44
- name : Upload Release Asset
59
- uses : actions/upload-release-asset@v1
60
- env :
61
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
45
+ uses : actions/github-script@v6
62
46
with :
63
- upload_url : ${{ github.event.release.upload_url }}
64
- asset_path : colink-server-linux-x86_64-musl.tar.gz
65
- asset_name : colink-server-linux-x86_64-musl.tar.gz
66
- asset_content_type : application/tar+gzip
47
+ script : |
48
+ const fs = require('fs').promises;
49
+ github.rest.repos.uploadReleaseAsset({
50
+ owner: context.repo.owner,
51
+ repo: context.repo.repo,
52
+ release_id: ${{ github.event.release.id }},
53
+ name: 'colink-server-${{ matrix.platform }}.tar.gz',
54
+ data: await fs.readFile('colink-server-${{ matrix.platform }}.tar.gz')
55
+ });
0 commit comments