Setup tests #547
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.80.1 | |
FORC_VERSION: 0.63.3 | |
CORE_VERSION: 0.34.0 | |
PATH_TO_SCRIPTS: .github/scripts | |
jobs: | |
build-sway-standards: | |
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 Standards | |
run: forc fmt --path standards --check | |
- name: Build All Standards | |
run: forc build --error-on-warnings --path standards --release | |
build-examples: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
project: | |
[ | |
"examples/src3-mint-burn", | |
"examples/src5-ownership", | |
"examples/src6-vault", | |
"examples/src7-metadata", | |
"examples/src11-security-information", | |
"examples/src12-contract-factory", | |
"examples/src14-simple-proxy", | |
"examples/src20-native-asset", | |
] | |
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 Examples | |
run: forc fmt --path ${{ matrix.project }} --check | |
- name: Build All Examples | |
run: forc build --path ${{ matrix.project }} --release | |
- name: Run Cargo Tests | |
run: cargo test --manifest-path ${{ matrix.project }}/Cargo.toml |