-
Notifications
You must be signed in to change notification settings - Fork 20
132 lines (126 loc) · 4.26 KB
/
workflow.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
name: build-and-deploy
on:
push:
branches:
- master
- testnet
workflow_dispatch:
pull_request:
env:
RELAY_CHAIN_VERSION: v0.9.28
jobs:
build:
runs-on: lark
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- run: git describe --tags --abbrev=0 --always
- name: Setup cmake
uses: jwlawson/[email protected]
- name: Install misc dependencies
run: sudo rm /var/lib/dpkg/lock-frontend && sudo rm /var/lib/dpkg/lock && sudo apt-get install -y protobuf-compiler m4
- name: Install Rust
uses: codota/toolchain@00a8bf2bdcfe93aefd70422d3dec07337959d3a4
with:
profile: minimal
- name: Install clippy
run: rustup component add clippy
- name: Run clippy
run: make clippy
continue-on-error: false
- name: Install tarpaulin
run: cargo install cargo-tarpaulin
- name: Test && Generate code coverage
run: make coverage
- name: Upload to codecov.io
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false
- name: Build runtime
run: cargo build --release --locked
working-directory: runtime/basilisk
- name: Build node
run: cargo build --release --locked
- name: Version info
run: ./target/release/basilisk --version
- name: Upload release binary
uses: actions/upload-artifact@v2
with:
name: basilisk
path: target/release/basilisk
- name: Upload release wasm
uses: actions/upload-artifact@v2
with:
name: basilisk_runtime.compact.compressed.wasm
path: target/release/wbuild/basilisk-runtime/basilisk_runtime.compact.compressed.wasm
test-inclusion:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/download-artifact@v2
name: Download basilisk binary
with:
name: basilisk
path: target/release
- uses: robinraju/release-downloader@v1
name: Download relay chain binary
with:
repository: paritytech/polkadot
tag: ${{ env.RELAY_CHAIN_VERSION }}
fileName: polkadot
out-file-path: ../polkadot/target/release
- run: chmod +x ./basilisk && ./basilisk --version
name: Basilisk version
working-directory: target/release
- run: chmod +x ./polkadot && ./polkadot --version
name: Polkadot version
working-directory: ../polkadot/target/release
- uses: actions/setup-node@v2
name: Setup node.js
with:
node-version: '14'
check-latest: true
- run: npm install && npm start
name: Launch rococo local & wait for inclusion
working-directory: scripts/wait-for-inclusion
version-check:
runs-on: ubuntu-latest
outputs:
runtime-upgraded: ${{ steps.check-runtime.outputs.upgraded }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Install Rust
uses: codota/toolchain@00a8bf2bdcfe93aefd70422d3dec07337959d3a4
with:
profile: minimal
- name: Get crate versions
run: |
VERSION_UPDATE=$(./scripts/list_crate_updates.sh)
VERSION_UPDATE=$(cat << EOF
$VERSION_UPDATE
EOF
)
echo "VERSION_UPDATE<<EOF" >> $GITHUB_ENV
echo "$VERSION_UPDATE" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Check runtime upgrade
id: check-runtime
if: contains(env.VERSION_UPDATE, 'Runtime version has been increased.')
run: echo "::set-output name=upgraded::true"
- name: Sticky Pull Request Comment
uses: marocchino/[email protected]
with:
message: |
${{ env.VERSION_UPDATE }}
- name: Evaluate result
if: contains(env.VERSION_UPDATE, 'have not been updated') || contains(env.VERSION_UPDATE, 'versions don''t match') || contains(env.VERSION_UPDATE, 'downgraded')
run: exit 1