-
Notifications
You must be signed in to change notification settings - Fork 89
150 lines (129 loc) · 4.26 KB
/
examples.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
148
149
150
name: Examples
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
rust-version: 1.65.0
dfx-version: 0.14.1
ic-wasm-version: 0.4.0
jobs:
build-candid-extractor:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-candid-extractor-${{ hashFiles('**/Cargo.toml', 'rust-toolchain.toml') }}
restore-keys: |
${{ runner.os }}-candid-extractor-
${{ runner.os }}-
- name: Install Rust
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ env.rust-version }}
- name: Build candid-extractor
run: cargo build -p candid-extractor --release
- uses: actions/upload-artifact@v3
with:
name: candid-extractor
path: target/release/candid-extractor
test:
runs-on: ubuntu-latest
needs: build-candid-extractor
strategy:
fail-fast: false
matrix:
project-name:
[asset_storage, chess, counter, management_canister, print, profile]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
examples/${{ matrix.project-name }}/target/
key: ${{ runner.os }}-${{ matrix.project-name }}-${{ hashFiles('**/Cargo.toml', 'rust-toolchain.toml') }}
restore-keys: |
${{ runner.os }}-${{ matrix.project-name }}-
${{ runner.os }}-
- name: Install Rust
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ env.rust-version }}
target: wasm32-unknown-unknown
components: rustfmt
- name: Install ic-wasm
# might already in cache
run: |
wget https://github.com/dfinity/ic-wasm/releases/download/${{env.ic-wasm-version }}/ic-wasm-linux64
chmod 755 ic-wasm-linux64
mv ic-wasm-linux64 /usr/local/bin/ic-wasm
- name: Download candid-extractor
uses: actions/download-artifact@v3
with:
name: candid-extractor
- name: Install candid-extractor
run: |
chmod 755 candid-extractor
mv candid-extractor /usr/local/bin/candid-extractor
- name: Install DFX
run: |
export DFX_VERSION=${{env.dfx-version }}
echo Install DFX v$DFX_VERSION
yes | sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"
- name: Setup BATS
uses: mig4/[email protected]
with:
bats-version: 1.2.1
- name: Install bitcoin
if: ${{ matrix.project-name == 'management_canister' }}
run: |
CWD=$(pwd)
cd "$(mktemp -d)"
BITCOIN_CORE_VERSION=22.0
BITCOIN_CORE_FILENAME="bitcoin-$BITCOIN_CORE_VERSION-x86_64-linux-gnu.tar.gz"
BITCOIN_CORE_TARBALL_SHA="59ebd25dd82a51638b7a6bb914586201e67db67b919b2a1ff08925a7936d1b16"
wget -nv "https://bitcoin.org/bin/bitcoin-core-$BITCOIN_CORE_VERSION/$BITCOIN_CORE_FILENAME"
echo "$BITCOIN_CORE_TARBALL_SHA $BITCOIN_CORE_FILENAME" | shasum -c
tar xzf "$BITCOIN_CORE_FILENAME"
cd "bitcoin-$BITCOIN_CORE_VERSION/bin"
sudo install -m 0755 -o root -g root -t /usr/local/bin *
cd "$CWD"
- name: Run Tests
shell: bash
run: |
bats -r examples/${{ matrix.project-name }}
env:
RUST_BACKTRACE: 1
- name: cargo fmt # no clippy because #[import] makes it fail
run: |
pushd examples/${{ matrix.project-name }}
cargo fmt --check
popd
aggregate:
name: examples:required
if: ${{ always() }}
needs: test
runs-on: ubuntu-latest
steps:
- name: Check step result directly
if: ${{ needs.test.result != 'success' }}
run: exit 1