From 201caaa0aec675913337a8962ba172559ba1a478 Mon Sep 17 00:00:00 2001 From: Flouse <1297478+Flouse@users.noreply.github.com> Date: Wed, 18 Oct 2023 15:32:16 +0000 Subject: [PATCH] CI: fix gwos scripts test --- .../{scripts.yml => gwos-scripts.yml} | 62 +++++++++++-------- 1 file changed, 37 insertions(+), 25 deletions(-) rename .github/workflows/{scripts.yml => gwos-scripts.yml} (57%) diff --git a/.github/workflows/scripts.yml b/.github/workflows/gwos-scripts.yml similarity index 57% rename from .github/workflows/scripts.yml rename to .github/workflows/gwos-scripts.yml index aaef03518..582d370db 100644 --- a/.github/workflows/scripts.yml +++ b/.github/workflows/gwos-scripts.yml @@ -13,65 +13,77 @@ on: - 'crates/tests/src/script_tests/**' jobs: - build: - - runs-on: ubuntu-latest + build-gwos-and-test-scripts: + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v1 - - name: Install Rust components - run: rustup component add rustfmt && rustup component add clippy - - uses: actions/cache@v3 + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Cache of Cargo + uses: actions/cache@v3 with: path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-${{ runner.arch }}-cargo-test-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-${{ runner.arch }}-cargo-test + - name: Install moleculec - working-directory: gwos - run: CARGO_TARGET_DIR=target/ cargo install moleculec --version 0.7.2 + run: | + test "$(moleculec --version)" = "Moleculec 0.7.2" \ + || cargo install moleculec --version 0.7.2 --force - name: Install capsule env: CAPSULE_VERSION: v0.7.0 - run: curl -OL https://github.com/nervosnetwork/capsule/releases/download/${CAPSULE_VERSION}/capsule_${CAPSULE_VERSION}_x86_64-linux.tar.gz && tar xf capsule_${CAPSULE_VERSION}_x86_64-linux.tar.gz && echo `pwd`/capsule_${CAPSULE_VERSION}_x86_64-linux >> $GITHUB_PATH - - name: Check Tests format - run: cargo fmt --all -- --check - # - name: Check Rust format - # working-directory: gwos/contracts - # run: cargo fmt -- --check + run: | + (which capsule && test "$(capsule --version)" = "Capsule 0.7.0") \ + || curl -OL https://github.com/nervosnetwork/capsule/releases/download/${CAPSULE_VERSION}/capsule_${CAPSULE_VERSION}_x86_64-linux.tar.gz \ + && tar xf capsule_${CAPSULE_VERSION}_x86_64-linux.tar.gz \ + && mv capsule_${CAPSULE_VERSION}_x86_64-linux/capsule ~/.cargo/bin/ \ + && rm capsule_${CAPSULE_VERSION}_x86_64-linux.tar.gz \ + && rm -rf capsule_${CAPSULE_VERSION}_x86_64-linux/ + capsule --version + + # cargo fmt is done in .github/workflows/rust.yml - name: Check C format working-directory: gwos/c run: make fmt - - name: Init submodules - run: git submodule init && git submodule update -r + - name: Compile C contracts working-directory: gwos/c run: make - #- name: Cargo clippy check - # env: - # RUSTFLAGS: -D warnings - # run: cd contracts && cargo clippy + - uses: actions/cache@v3 id: fetch-capsule-cache with: path: | gwos/.tmp/capsule-cache.tar key: ${{ runner.os }}-capsule-cache-${{ hashFiles('contracts/Cargo.lock') }} + - name: Restore capsule cache if: steps.fetch-capsule-cache.outputs.cache-hit == 'true' working-directory: gwos run: tools/restore-capsule-cache.sh + - name: Build Rust contracts working-directory: gwos run: capsule build + - name: Backup capsule cache if: steps.fetch-capsule-cache.outputs.cache-hit != 'true' working-directory: gwos run: tools/backup-capsule-cache.sh + # TODO: remove this - name: Copy contracts from prebuild docker images run: devtools/fetch-binaries.sh + - name: Test C Uint256 run: cargo test -p c-uint256-tests - name: Script tests