-
Notifications
You must be signed in to change notification settings - Fork 2
147 lines (140 loc) · 4.47 KB
/
rust.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name: Rust
on:
push:
pull_request:
env:
CARGO_TERM_COLOR: always
defaults:
run:
# necessary for windows
shell: bash
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cargo cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
./target
key: test-cargo-registry
- name: List
run: find ./
build:
strategy:
fail-fast: false
matrix:
# a list of all the targets
include:
- TARGET: x86_64-unknown-linux-gnu
OS: ubuntu-latest
- TARGET: x86_64-apple-darwin
OS: macos-latest
- TARGET: x86_64-pc-windows-msvc
OS: windows-latest
# - TARGET: wasm32-unknown-unknown
# OS: ubuntu-latest
needs: test
runs-on: ${{ matrix.OS }}
env:
NAME: fluent
TARGET: ${{ matrix.TARGET }}
OS: ${{ matrix.OS }}
steps:
- uses: actions/checkout@v2
- name: Cargo cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
./target
key: build-cargo-registry-${{matrix.TARGET}}
- name: List
run: find ./
- name: Install and configure dependencies
run: |
if [[ $OS =~ ^ubuntu.*$ ]]; then
sudo apt-get install -qq crossbuild-essential-arm64 crossbuild-essential-armhf
fi
cat >>~/.cargo/config <<EOF
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-gnu-gcc"
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
[target.armv7-unknown-linux-musleabihf]
linker = "arm-linux-gnueabihf-gcc"
[target.arm-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
[target.arm-unknown-linux-musleabihf]
linker = "arm-linux-gnueabihf-gcc"
EOF
- name: Install rust target
run: rustup target add $TARGET
- name: List contents of the repository
run: ls -la
- name: Print current working directory
run: pwd
- name: change path
run: cd fluent_cli/
- name: List contents of the repository
run: ls -la
- name: Install wasm-bindgen-cli
if: matrix.TARGET == 'wasm32-unknown-unknown'
run: cargo install wasm-bindgen-cli
- name: Run build
run: |
if [[ $TARGET == "wasm32-unknown-unknown" ]]; then
cargo build --release --target $TARGET --manifest-path fluent_cli/Cargo.toml
wasm-bindgen --out-dir ./artifacts --target web fluent_cli/target/$TARGET/release/fluent.wasm
else
cargo build --release --verbose --target $TARGET --manifest-path fluent_cli/Cargo.toml
fi
- name: List contents of the repository
run: ls -lh fluent_cli/target
- name: List fluent_cli/target
run: find fluent_cli/target
- name: Compress
run: |
mkdir -p ./artifacts
if [[ $OS =~ ^windows.*$ ]]; then
EXEC=$NAME.exe
else
EXEC=$NAME
fi
if [[ $GITHUB_REF_TYPE =~ ^tag$ ]]; then
TAG=$GITHUB_REF_NAME
else
TAG=$GITHUB_SHA
fi
if [[ $TARGET == "wasm32-unknown-unknown" ]]; then
tar -czf ./artifacts/$NAME-$TARGET-$TAG.tar.gz -C ./artifacts .
else
mv fluent_cli/target/$TARGET/release/$EXEC ./$EXEC
tar -czf ./artifacts/$NAME-$TARGET-$TAG.tar.gz $EXEC fluent_cli/config.json amber.yaml amber-x86_64-apple-darwin amber-x86_64-pc-windows-gnu.exe amber-x86_64-unknown-linux-musl fluent_cli/fluent_cli_autocomplete.ps1 fluent_cli/fluent_cli_autocomplete.sh fluent_cli/windows-amber-key-setup.bat
fi
- name: Archive artifact
uses: actions/upload-artifact@v2
with:
name: result
path: ./artifacts
# deploys to github releases on tag
deploy:
if: startsWith(github.ref, 'refs/tags/')
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: result
path: ./artifacts
- name: List
run: find ./artifacts
- name: Release
uses: softprops/action-gh-release@v1
with:
files: ./artifacts/*.tar.gz