Skip to content

Commit 264267c

Browse files
committed
improved cd action
1 parent 2687cb9 commit 264267c

File tree

2 files changed

+52
-27
lines changed

2 files changed

+52
-27
lines changed

.github/workflows/cd.yml

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,42 @@ on:
55

66
jobs:
77
deploy:
8-
9-
runs-on: ${{ matrix.os }}
10-
118
strategy:
9+
fail-fast: false
1210
matrix:
13-
os: [macos-latest]
11+
os: [ubuntu-latest, macos-latest, windows-latest]
12+
runs-on: ${{ matrix.os }}
1413

1514
steps:
16-
- uses: actions/checkout@v1
17-
- name: Install Rust
18-
run: brew install rust
19-
if: matrix.os == 'macos-latest'
20-
- name: Build
21-
run: cargo build --release
22-
- name: Compress archive
23-
run: cd target/release && tar -czf onefetch.tar.gz onefetch
24-
- name: Generate asset name
25-
run: echo ::set-output name=filename::onefetch_${TAG_NAME#v}_${OS%-latest}_x86_64.tar.gz
26-
id: generate-name
27-
env:
28-
TAG_NAME: ${{ github.event.release.tag_name }}
29-
OS: ${{ matrix.os }}
30-
- name: Upload release asset
31-
uses: actions/upload-release-asset@v1.0.1
32-
env:
33-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34-
with:
35-
upload_url: ${{ github.event.release.upload_url }}
36-
asset_path: ./target/release/onefetch.tar.gz
37-
asset_name: ${{ steps.generate-name.outputs.filename }}
38-
asset_content_type: application/gzip
15+
- uses: actions/checkout@v2
16+
17+
- name: Install Rust
18+
uses: actions-rs/toolchain@v1
19+
with:
20+
toolchain: stable
21+
profile: minimal
22+
components: clippy
23+
24+
- name: Build
25+
run: make build
26+
27+
- name: Build Release Mac
28+
if: matrix.os == 'macos-latest'
29+
run: make release-mac
30+
31+
- name: Build Release Linux
32+
if: matrix.os == 'ubuntu-latest'
33+
run: make release-linux
34+
35+
- name: Build Release Win
36+
if: matrix.os == 'windows-latest'
37+
run: make release-win
38+
39+
- name: Release
40+
uses: softprops/action-gh-release@v1
41+
with:
42+
files: |
43+
./release/*.tar.gz
44+
./release/*.zip
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Makefile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,25 @@
11
build:
22
cargo build --release
3+
34
install: build
45
sudo cp target/release/onefetch /usr/local/bin
6+
57
uninstall:
68
sudo rm -f /usr/local/bin/onefetch
9+
710
clean:
811
cargo clean
12+
13+
release-mac:
14+
strip target/release/onefetch
15+
mkdir -p release
16+
tar -C ./target/release/ -czvf ./release/onefetch-mac.tar.gz ./onefetch
17+
18+
release-win:
19+
mkdir -p release
20+
tar -C ./target/release/ -czvf ./release/onefetch-win.tar.gz ./onefetch.exe
21+
22+
release-linux:
23+
strip target/release/onefetch
24+
mkdir -p release
25+
tar -C ./target/release/ -czvf ./release/onefetch-linux.tar.gz ./onefetch

0 commit comments

Comments
 (0)