Skip to content

CSUB-1102: Refactoring around docker files #79

CSUB-1102: Refactoring around docker files

CSUB-1102: Refactoring around docker files #79

Workflow file for this run

on:
push:
branches: [main, dev]
pull_request:
name: CI
permissions: read-all
jobs:
rustfmt:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Configure rustc version
run: |
RUSTC_VERSION=$(grep channel rust-toolchain.toml | tail -n1 | tr -d " " | cut -f2 -d'"')
echo "RUSTC_VERSION=$RUSTC_VERSION" >> "$GITHUB_ENV"
- name: Install Rust toolchain
uses: gluwa/toolchain@dev
with:
toolchain: ${{ env.RUSTC_VERSION }}
profile: minimal
override: true
components: rustfmt
- name: Check formatting
uses: gluwa/cargo@dev
with:
command: fmt
args: -- --check
clippy:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Configure rustc version
run: |
RUSTC_VERSION=$(grep channel rust-toolchain.toml | tail -n1 | tr -d " " | cut -f2 -d'"')
echo "RUSTC_VERSION=$RUSTC_VERSION" >> "$GITHUB_ENV"
- name: Install Rust toolchain
uses: gluwa/toolchain@dev
with:
toolchain: ${{ env.RUSTC_VERSION }}
profile: minimal
override: true
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Run Clippy
uses: gluwa/cargo@dev
with:
command: clippy
args: --all-targets --all-features -- -D warnings
check:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Configure rustc version
run: |
RUSTC_VERSION=$(grep channel rust-toolchain.toml | tail -n1 | tr -d " " | cut -f2 -d'"')
echo "RUSTC_VERSION=$RUSTC_VERSION" >> "$GITHUB_ENV"
- name: Install Rust toolchain
uses: gluwa/toolchain@dev
with:
toolchain: ${{ env.RUSTC_VERSION }}
target: wasm32-unknown-unknown
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
- name: Check Build
run: |
RUSTFLAGS="-D warnings" cargo check --release
unit-test:
permissions:
pull-requests: write
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Configure rustc version
run: |
RUSTC_VERSION=$(grep channel rust-toolchain.toml | tail -n1 | tr -d " " | cut -f2 -d'"')
echo "RUSTC_VERSION=$RUSTC_VERSION" >> "$GITHUB_ENV"
- name: Install Rust toolchain
uses: gluwa/toolchain@dev
with:
toolchain: ${{ env.RUSTC_VERSION }}
components: llvm-tools-preview
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@v2.41.4
with:
tool: cargo-llvm-cov
- name: Execute tests
id: coverage
env:
CRUNCH_CONFIG_FILENAME: environments/cc3/testnet/.env
run: |
PR_NUMBER=$(echo "$GITHUB_REF" | sed "s|refs/pull/||" | sed "s|/merge||")
DESTINATION_PATH="crunch/PR-$PR_NUMBER"
export DESTINATION_PATH
echo "**For full LLVM coverage report [click here](https://staticsitellvmhtml.z13.web.core.windows.net/$DESTINATION_PATH/html/)!**" > uncovered-lines.log
cargo llvm-cov --workspace --html --show-missing-lines \
--hide-instantiations --ignore-filename-regex "(tests.rs|mock.rs)"
UNCOVERED_LINES=$(sed "s|$(pwd)|.|" uncovered-lines.log)
# workaround the fact that GitHub Actions doesn't support multi-line output
# https://trstringer.com/github-actions-multiline-strings/
UNCOVERED_LINES="${UNCOVERED_LINES//'%'/'%25'}"
UNCOVERED_LINES="${UNCOVERED_LINES//$'\n'/'%0A'}"
UNCOVERED_LINES="${UNCOVERED_LINES//$'\r'/'%0D'}"
echo "uncovered_lines=$UNCOVERED_LINES" >> "$GITHUB_OUTPUT"
- name: Azure login
if: env.GITHUB_TOKEN
env:
GITHUB_TOKEN: ${{ secrets.CREDITCOIN_GITHUB_API_TOKEN }}
uses: azure/login@v2
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
allow-no-subscriptions: true
- name: Upload coverage report to Azure Storage
if: env.GITHUB_TOKEN
env:
GITHUB_TOKEN: ${{ secrets.CREDITCOIN_GITHUB_API_TOKEN }}
run: |
AZURE_STORAGE_KEY=${{ secrets.LLVM_AZURE_STORAGE_KEY }}
export AZURE_STORAGE_KEY
PR_NUMBER=$(echo "$GITHUB_REF" | sed "s|refs/pull/||" | sed "s|/merge||")
DESTINATION_PATH="crunch/PR-$PR_NUMBER"
export DESTINATION_PATH
az storage blob upload-batch --account-name staticsitellvmhtml --auth-mode key -d "\$web" --destination-path "$DESTINATION_PATH" --overwrite -s ./target/llvm-cov
- name: Post comment to PR
if: env.GITHUB_TOKEN
uses: mshick/add-pr-comment@v2
env:
GITHUB_TOKEN: ${{ secrets.CREDITCOIN_GITHUB_API_TOKEN }}
with:
message: ${{ steps.coverage.outputs.uncovered_lines }}
allow-repeats: false
- name: Upload coverage report as artifact
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: target/llvm-cov/html/