chore: be more explicit #17
Workflow file for this run
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: [pull_request, push] | |
# Cancel a job if there's a new on on the same branch started. | |
# Based on https://stackoverflow.com/questions/58895283/stop-already-running-workflow-job-in-github-actions/67223051#67223051 | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
# Faster crates.io index checkout. | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
jobs: | |
set-msrv: | |
runs-on: ubuntu-latest | |
outputs: | |
msrv: ${{ steps.msrv.outputs.MSRV }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get MSRV from rust-toolchain | |
id: msrv | |
run: | | |
MSRV=$(cat ./rust-toolchain) | |
echo "MSRV=$MSRV" | tee --append "$GITHUB_OUTPUT" | |
#check_clippy: | |
# needs: set-msrv | |
# runs-on: ubuntu-latest | |
# name: Clippy | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: dtolnay/rust-toolchain@master | |
# with: | |
# toolchain: ${{ needs.set-msrv.outputs.msrv }} | |
# components: clippy | |
# - name: Install required packages | |
# run: sudo apt install --no-install-recommends --yes ocl-icd-opencl-dev libhwloc-dev | |
# - name: Run cargo clippy | |
# run: cargo clippy --all-targets --workspace -- -D warnings | |
# | |
#check_fmt: | |
# needs: set-msrv | |
# runs-on: ubuntu-latest | |
# name: Checking fmt | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: dtolnay/rust-toolchain@master | |
# with: | |
# toolchain: ${{ needs.set-msrv.outputs.msrv }} | |
# components: rustfmt | |
# - name: Run cargo fmt | |
# run: cargo fmt --all -- --check | |
proof-params: | |
needs: set-msrv | |
runs-on: ubuntu-latest | |
name: Generate proof parameters and cache them | |
strategy: | |
matrix: | |
size: [2048, 4096] | |
steps: | |
#- uses: actions/checkout@v4 | |
#- uses: dtolnay/rust-toolchain@master | |
# with: | |
# toolchain: ${{needs.set-msrv.outputs.msrv}} | |
#- name: Install required packages | |
# run: sudo apt install --no-install-recommends --yes ocl-icd-opencl-dev libhwloc-dev | |
- name: Generate proof parameters | |
#run: cargo run --release --no-default-features --bin paramcache -- --sector-sizes=${{ matrix.size }} | |
run: mkdir -p /var/tmp/filecoin-proof-parameters/ && touch /var/tmp/filecoin-proof-parameters/${{ matrix.size }}.params | |
#- name: Cache proof parameters | |
# id: cache-parameters | |
# uses: actions/cache/save@v4 | |
# with: | |
# path: /var/tmp/filecoin-proof-parameters/ | |
# key: proof-params-v28-n-${{ matrix.size }}-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
- name: Upload proof parameters as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proof-params-v28-n-${{ hashFiles('filecoin-proofs/parameters.json') }}-${{ matrix.size }} | |
path: /var/tmp/filecoin-proof-parameters/ | |
compression-level: 0 | |
if-no-files-found: error | |
test_release: | |
needs: [set-msrv, proof-params] | |
runs-on: ubuntu-latest | |
name: Test in release mode | |
steps: | |
- uses: actions/checkout@v4 | |
#- uses: dtolnay/rust-toolchain@master | |
# with: | |
# toolchain: ${{needs.set-msrv.outputs.msrv}} | |
#- name: Install required packages | |
# run: sudo apt install --no-install-recommends --yes ocl-icd-opencl-dev libhwloc-dev | |
#- name: Cache proof parameters | |
# id: cache-parameters | |
# uses: actions/cache@v4 | |
# with: | |
# path: /var/tmp/filecoin-proof-parameters/ | |
# #key: proof-params-v28-n-${{ runner.os }}-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
# key: proof-params-v28-n-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
#- name: Generate proof parameters | |
# if: steps.cache-parameters.outputs.cache-hit != 'true' | |
# #run: cargo build --release --no-default-features --bin paramcache --sector-sizes='2048,4096,16384,32768' | |
# run: cargo run --release --no-default-features --bin paramcache -- --sector-sizes='2048' | |
#- name: Restore proof parameters cache 2KiB | |
# id: cache-parameters-2048 | |
# uses: actions/cache/restore@v4 | |
# with: | |
# path: /var/tmp/filecoin-proof-parameters/ | |
# #key: proof-params-v28-n-${{ runner.os }}-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
# key: proof-params-v28-n-2048-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
#- name: Get proof parameters 2KiB | |
# uses: actions/cache/restore@v4 | |
# with: | |
# path: /var/tmp/filecoin-proof-parameters/ | |
# #key: proof-params-v28-n-${{ runner.os }}-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
# key: proof-params-v28-n-2048-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
# | |
# | |
#- name: List parameter files | |
# run: ls -al /var/tmp/filecoin-proof-parameters/ | |
# | |
#- name: Restore proof parameters cache 4KiB | |
# id: cache-parameters-4096 | |
# uses: actions/cache/restore@v4 | |
# with: | |
# path: /var/tmp/filecoin-proof-parameters/ | |
# key: proof-params-v28-n-4096-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
# | |
#- name: List parameter files | |
# run: ls -al /var/tmp/filecoin-proof-parameters/ | |
# | |
- name: Get proof parameters | |
uses: actions/download-artifact@v4 | |
with: | |
name: proof-params-v28-n-${{ hashFiles('filecoin-proofs/parameters.json') }} | |
pattern: proof-params-v28-n-${{ hashFiles('filecoin-proofs/parameters.json') }}-* | |
path: /var/tmp/filecoin-proof-parameters/ | |
merge-multiple: true | |
#github-token: ${{ github.token }} | |
repository: ${{ github.action_repository }} | |
#run-id: ${{ github.event.workflow_run.id }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Display structure of downloaded files | |
run: ls -lR /var/tmp/filecoin-proof-parameters/ | |
#- name: Test in release profile | |
# #if: steps.cache-parameters-2048.outputs.cache-hit == 'true' && steps.cache-parameters-4096.outputs.cache-hit == 'true' | |
# run: cargo test --verbose --release --workspace --all-targets | |
# ## Some `storage-proofs-update` tests need to run sequentially due | |
# ## to their high memory usage. | |
# #cargo test -p storage-proofs-update --features isolated-testing --release << parameters.cargo-args >> -- --test-threads=1 | |
upload: | |
strategy: | |
matrix: | |
runs-on: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Create a File | |
run: echo "hello from ${{ matrix.runs-on }}" > file-${{ matrix.runs-on }}.txt | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: my-artifact-${{ matrix.runs-on }} | |
path: file-${{ matrix.runs-on }}.txt | |
download: | |
needs: upload | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download All Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: my-artifact | |
pattern: my-artifact-* | |
merge-multiple: true | |
repository: ${{ github.action_repository }} | |
run-id: ${{ github.event.workflow_run.id }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- run: ls -R my-artifact |