-
Notifications
You must be signed in to change notification settings - Fork 3
133 lines (126 loc) · 3.58 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: Release
on:
pull_request:
push:
branches:
- main
tags:
- 'v*.*.*'
jobs:
style:
name: Check Style
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
profile: minimal
override: true
- name: cargo fmt -- --check
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
test:
name: Test
needs: [style]
runs-on: ubuntu-latest
strategy:
matrix:
# build: [stable, beta, nightly]
build: [stable, beta]
include:
- build: beta
rust: beta
# - build: nightly
# rust: nightly
# benches: true
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust || 'stable' }}
profile: minimal
override: true
- name: Install ssl, musl & protobuf
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev musl-tools protobuf-compiler
- name: Build debug
uses: actions-rs/cargo@v1
with:
command: build
args: ${{ matrix.features }}
- name: Test
uses: actions-rs/cargo@v1
env:
RUST_TEST_THREADS: 1
with:
command: test
args: ${{ matrix.features }}
- name: Test all benches
if: matrix.benches
uses: actions-rs/cargo@v1
env:
RUST_TEST_THREADS: 1
with:
command: test
args: --benches ${{ matrix.features }}
deploy:
name: deploy
needs: [test]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
strategy:
matrix:
target:
- aarch64-unknown-linux-gnu
- armv7-unknown-linux-gnueabihf
- i686-unknown-linux-gnu
- i686-unknown-linux-musl
- arm-unknown-linux-gnueabi
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
- x86_64-unknown-netbsd
# - aarch64-apple-darwin # CI fails as it appears that we have to use gcc provided by apple.
# - x86_64-pc-windows-gnu # Currently release fails as compiled will have a .exe extension
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install ssl, musl & protobuf
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev musl-tools protobuf-compiler
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build target
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --release --target ${{ matrix.target }}
- name: Package
shell: bash
run: |
#strip target/${{ matrix.target }}/release/nostrss
cd target/${{ matrix.target }}/release
tar czvf ../../../nostrss-${{ matrix.target }}.tar.gz nostrss nostrss-cli
cd -
- name: Publish
uses: softprops/action-gh-release@v1
# TODO: if any of the build step fails, the release should be deleted.
with:
files: 'nostrss*'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}