Skip to content

Commit 71665d5

Browse files
authored
Merge pull request #1 from AnNingUI/dev
添加 GitHub Actions 工作流以构建和测试项目
2 parents fc94ce0 + 1798789 commit 71665d5

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Build and Test
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
build-and-test:
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
matrix:
16+
os: [ubuntu-latest, windows-latest, macos-latest]
17+
rust: [stable]
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v3
22+
23+
- name: Set up Rust
24+
uses: actions-rs/toolchain@v1
25+
with:
26+
toolchain: ${{ matrix.rust }}
27+
override: true
28+
29+
- name: Build project
30+
uses: actions-rs/cargo@v1
31+
with:
32+
command: build
33+
args: --release
34+
35+
- name: Run tests
36+
uses: actions-rs/cargo@v1
37+
with:
38+
command: test
39+
args: --release
40+
41+
- name: Package binary (Unix-like)
42+
if: runner.os != 'Windows'
43+
run: |
44+
mkdir -p dist
45+
cp target/release/treegen dist/
46+
tar -czvf treegen-${{ runner.os }}.tar.gz dist/treegen
47+
48+
- name: Package binary (Windows)
49+
if: runner.os == 'Windows'
50+
run: |
51+
mkdir dist
52+
Copy-Item target\release\treegen.exe dist\
53+
Compress-Archive -Path dist\treegen.exe -DestinationPath treegen-${{ runner.os }}.zip
54+
55+
- name: Upload artifact
56+
uses: actions/upload-artifact@v2
57+
with:
58+
name: treegen-${{ runner.os }}
59+
path: |
60+
treegen-${{ runner.os }}.tar.gz
61+
treegen-${{ runner.os }}.zip

0 commit comments

Comments
 (0)