-
Notifications
You must be signed in to change notification settings - Fork 61
138 lines (107 loc) · 3.77 KB
/
ci.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
name: CI
on:
push:
branches:
- master
pull_request:
release:
types: [published]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
REGISTRY: ghcr.io
RUST_VERSION: 1.71.1
FORC_VERSION: 0.47.0
CORE_VERSION: 0.20.8
PATH_TO_SCRIPTS: .github/scripts
jobs:
build-sway-lib:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_VERSION }}
override: true
- name: Init cache
uses: Swatinem/rust-cache@v1
- name: Install a modern linker (mold)
uses: rui314/setup-mold@v1
- name: Force Rust to use mold globally for compilation
run: |
touch ~/.cargo/config.toml
echo "[target.x86_64-unknown-linux-gnu]" > ~/.cargo/config.toml
echo 'linker = "clang"' >> ~/.cargo/config.toml
echo 'rustflags = ["-C", "link-arg=-fuse-ld=/usr/local/bin/mold"]' >> ~/.cargo/config.toml
- name: Install rustfmt
run: rustup component add rustfmt
- name: Install Fuel toolchain
uses: FuelLabs/[email protected]
with:
name: my-toolchain
components: forc@${{ env.FORC_VERSION }}, fuel-core@${{ env.CORE_VERSION }}
- name: Check Sway formatting
run: forc fmt --path libs --check
- name: Check Rust formatting
run: cargo fmt --manifest-path tests/Cargo.toml --verbose --check
- name: Build All Libs
run: forc build --path libs
- name: Build All Tests
run: forc build --path tests
- name: Cargo Test sway-lib
run: |
cargo test --manifest-path tests/Cargo.toml
forc-inline-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_VERSION }}
override: true
- name: Init cache
uses: Swatinem/rust-cache@v1
- name: Install Fuel toolchain
uses: FuelLabs/[email protected]
with:
name: my-toolchain
components: forc@${{ env.FORC_VERSION }}, fuel-core@${{ env.CORE_VERSION }}
- name: Run Libs Tests
run: forc build --path libs && forc test --path libs
- name: Run Tests Tests
run: forc build --path tests && forc test --path tests
contributing-book:
runs-on: ubuntu-latest
strategy:
matrix:
project: [".docs/contributing-book/src/code"]
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.RUST_VERSION }}
override: true
- name: Init cache
uses: Swatinem/rust-cache@v1
- name: Install rustfmt
run: rustup component add rustfmt
- name: Install Fuel toolchain
uses: FuelLabs/[email protected]
with:
name: my-toolchain
components: forc@${{ env.FORC_VERSION }}, fuel-core@${{ env.CORE_VERSION }}
- name: Check Sway formatting
run: forc fmt --path ${{ matrix.project }} --check
- name: Build Sway
run: forc build --path ${{ matrix.project }}