Skip to content

Commit

Permalink
ci(fix): add individual feature cargo check (#6363)
Browse files Browse the repository at this point in the history
Description
CI - add individual feature cargo check - stored in env
Use ubuntu-latest for basic workflows
Bump ripgrep to latest release
Add caching for github-runners

Motivation and Context
Check each feature from env

How Has This Been Tested?
Runs in local fork

What process can a PR reviewer use to test or verify this change?
---

<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->
  • Loading branch information
leet4tari authored Jun 4, 2024
1 parent 2c2d5bd commit 97b5128
Showing 1 changed file with 43 additions and 6 deletions.
49 changes: 43 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: CI

'on':
workflow_dispatch:
push:
branches:
- "ci-*"
pull_request:
types:
- opened
Expand All @@ -18,10 +21,13 @@ env:
CARGO_INCREMENTAL: 0
PROTOC: protoc
TERM: unknown
## Must be a JSon string
TS_FEATURES: '["default","safe","grpc","ledger","libtor","metrics","miner_input"]'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# https://docs.github.com/en/actions/examples/using-concurrency-expressions-and-a-test-matrix
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: ${{ !startsWith(github.ref, 'refs/tags/v') || github.ref != 'refs/heads/development' || github.ref != 'refs/heads/nextnet' || github.ref != 'refs/heads/stagenet' }}

jobs:
clippy:
Expand All @@ -39,7 +45,11 @@ jobs:
run: |
sudo apt-get update
sudo bash scripts/install_ubuntu_dependencies.sh
- name: Cache cargo files and outputs
if: startsWith(runner.environment,'github-hosted')
uses: Swatinem/rust-cache@v2
- name: caching (nightly)
if: startsWith(runner.environment,'self-hosted')
# Don't use rust-cache.
# Rust-cache disables a key feature of actions/cache: restoreKeys.
# Without restore keys, we lose the ability to get partial matches on caches, and end
Expand All @@ -64,6 +74,7 @@ jobs:
run: cargo install cargo-lints
- name: Clippy check (with lints)
run: cargo lints clippy --all-targets --all-features

machete:
# Checks for unused dependencies.
name: machete
Expand All @@ -80,7 +91,11 @@ jobs:
run: |
sudo apt-get update
sudo bash scripts/install_ubuntu_dependencies.sh
- name: Cache cargo files and outputs
if: startsWith(runner.environment,'github-hosted')
uses: Swatinem/rust-cache@v2
- name: caching (machete)
if: startsWith(runner.environment,'self-hosted')
# Don't use rust-cache.
# Rust-cache disables a key feature of actions/cache: restoreKeys.
# Without restore keys, we lose the ability to get partial matches on caches, and end
Expand All @@ -102,6 +117,7 @@ jobs:
run: |
cargo install cargo-machete
cargo machete
build-stable:
# Runs cargo check with stable toolchain to determine whether the codebase is likely to build
# on stable Rust.
Expand All @@ -110,7 +126,11 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v4
- name: Cache cargo files and outputs
if: startsWith(runner.environment,'github-hosted')
uses: Swatinem/rust-cache@v2
- name: caching (stable)
if: startsWith(runner.environment,'self-hosted')
# Don't use rust-cache.
# Rust-cache disables a key feature of actions/cache: restoreKeys.
# Without restore keys, we lose the ability to get partial matches on caches, and end
Expand Down Expand Up @@ -144,10 +164,21 @@ jobs:
run: rustup show
- name: cargo check
run: cargo check --release --all-targets --workspace --exclude tari_integration_tests --locked
- name: cargo check individual features
shell: bash
run: |
FEATURES_ARRAY=( $(echo ${TS_FEATURES} | jq --raw-output '.[]' | awk '{ print $1 }') )
for FEATURE_TEST in "${FEATURES_ARRAY[@]}"; do
echo "Testing for feature ${FEATURE_TEST} ..."
cargo check --release --all-targets \
--features ${FEATURE_TEST} \
--workspace --exclude tari_integration_tests --locked
done
- name: cargo check wallet ffi separately
run: cargo check --release --package minotari_wallet_ffi --locked
- name: cargo check chat ffi separately
run: cargo check --release --package minotari_chat_ffi --locked

licenses:
name: file licenses
runs-on: [ubuntu-20.04]
Expand All @@ -156,11 +187,13 @@ jobs:
uses: actions/checkout@v4
- name: install ripgrep
run: |
wget https://github.com/BurntSushi/ripgrep/releases/download/13.0.0/ripgrep_13.0.0_amd64.deb
sudo dpkg -i ripgrep_13.0.0_amd64.deb
#wget https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb.sha256
wget https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb
sudo dpkg -i ripgrep_14.1.0-1_amd64.deb
rg --version || exit 1
- name: run the license check
run: ./scripts/file_license_check.sh

test:
name: test
runs-on: [self-hosted, ubuntu-high-cpu]
Expand Down Expand Up @@ -189,7 +222,11 @@ jobs:
run: |
sudo apt-get update
sudo bash scripts/install_ubuntu_dependencies.sh
- name: Cache cargo files and outputs
if: startsWith(runner.environment,'github-hosted')
uses: Swatinem/rust-cache@v2
- name: caching (nightly)
if: startsWith(runner.environment,'self-hosted')
# Don't use rust-cache.
# Rust-cache disables a key feature of actions/cache: restoreKeys.
# Without restore keys, we lose the ability to get partial matches on caches, and end
Expand Down Expand Up @@ -224,7 +261,7 @@ jobs:
# Allows other workflows to know the PR number
artifacts:
name: pr_2_artifact
runs-on: [ubuntu-20.04]
runs-on: [ubuntu-latest]
steps:
- name: Save the PR number in an artifact
shell: bash
Expand All @@ -241,7 +278,7 @@ jobs:
# needed for test results
event_file:
name: "Upload Event File for Test Results"
runs-on: ubuntu-latest
runs-on: [ubuntu-latest]
steps:
- name: Upload
uses: actions/upload-artifact@v4
Expand Down

0 comments on commit 97b5128

Please sign in to comment.