Skip to content

fix: canbench post comment in CI from forked repos (part 1) #687

fix: canbench post comment in CI from forked repos (part 1)

fix: canbench post comment in CI from forked repos (part 1) #687

Workflow file for this run

name: CI
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
rust: [ 1.76.0 ]
steps:
- uses: actions/checkout@v2
- name: Cache Cargo
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ matrix.build }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ matrix.build }}-cargo-
- name: Install Rust
run: |
rustup update ${{ matrix.rust }} --no-self-update
rustup default ${{ matrix.rust }}
rustup component add rustfmt
rustup component add clippy
- name: Check Format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --tests --benches -- -D clippy::all
- name: Test
run: cargo test
env:
RUST_BACKTRACE: 1
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-1
- name: Install Rust
run: |
rustup update ${{ matrix.rust }} --no-self-update
rustup default ${{ matrix.rust }}
rustup target add wasm32-unknown-unknown
- name: Install DFX
run: |
wget --output-document install-dfx.sh "https://internetcomputer.org/install.sh"
DFX_VERSION=${DFX_VERSION:=0.14.3} DFXVM_INIT_YES=true bash install-dfx.sh < <(yes Y)
echo "$HOME/.local/share/dfx/bin" >> $GITHUB_PATH
source "$HOME/.local/share/dfx/env"
rm install-dfx.sh
dfx cache install
echo "$HOME/bin" >> $GITHUB_PATH
- name: Run test
run: |
bash examples/test.sh
benchmark:
runs-on: ubuntu-latest
needs: build
permissions:
# To allow writing comments to the PR in forked repositorites.
# See https://github.com/thollander/actions-comment-pull-request/issues/181
pull-requests: write
env:
PROJECT_DIR: .
steps:
- name: Checkout current PR
uses: actions/checkout@v4
- name: Checkout main branch
uses: actions/checkout@v4
with:
ref: main
path: _canbench_main_branch
- name: Cache Cargo
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ matrix.build }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ matrix.build }}-cargo-
- name: Install Rust
run: |
rustup update ${{ matrix.rust }} --no-self-update
rustup default ${{ matrix.rust }}
rustup target add wasm32-unknown-unknown
- name: Benchmark
run: |
bash .github/workflows/canbench_ci_run_benchmark.sh $PROJECT_DIR
- name: Post comment
uses: thollander/actions-comment-pull-request@v2
with:
filePath: /tmp/canbench_comment_message.txt
comment_tag: ${{ env.PROJECT_DIR }}
- name: Pass or fail
run: |
bash .github/workflows/canbench_ci_post_run_benchmark.sh
checks-pass:
# Always run this job!
if: always()
needs: [build, examples, benchmark]
runs-on: ubuntu-latest
steps:
- name: check build result
if: ${{ needs.build.result != 'success' }}
run: exit 1
- name: check examples result
if: ${{ needs.examples.result != 'success' }}
run: exit 1
- name: check benchmark result
if: ${{ needs.benchmark.result != 'success' }}
run: exit 1