Check version bump when opening PRs #1708
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
# Testing CI - Runs on each PR and Push | |
name: Test | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
permissions: | |
id-token: write | |
contents: read | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_TOOLCHAIN: nightly-2024-07-30 | |
RUST_COMPONENTS: "rust-std" | |
SWIFT_CODE_COV_REPORT_PATH: ".build/artifacts/info.lcov" # chosen | |
jobs: | |
# typos | |
check-typos: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Install Rust Toolchain | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
default: true | |
profile: minimal | |
- name: Install typos | |
uses: RDXWorks-actions/cargo-install@main | |
with: | |
crate: typos-cli | |
version: 1.22.7 | |
- name: Check typos | |
run: typos | |
# version bump | |
check-version: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Verify Cargo.toml version bump | |
run: | | |
# Extract the version from Cargo.toml on the base branch | |
base_version=$(git show origin/${{ github.event.pull_request.base.ref }}:crates/sargon/Cargo.toml | grep '^version' | sed 's/version = "\(.*\)"/\1/') | |
# Extract the version from the PR branch | |
pr_version=$(grep '^version' crates/sargon/Cargo.toml | sed 's/version = "\(.*\)"/\1/') | |
# Compare the versions | |
echo "Base version: $base_version" | |
echo "PR version: $pr_version" | |
if [ "$base_version" = "$pr_version" ]; then | |
echo "Version bump not detected in Cargo.toml. Please update the version." | |
exit 1 | |
else | |
echo "Version bump detected!" | |
fi | |
# phylum | |
phylum-analyze: | |
if: ${{ github.event.pull_request }} | |
uses: radixdlt/public-iac-resuable-artifacts/.github/workflows/phylum-analyze.yml@main | |
permissions: | |
id-token: write | |
pull-requests: write | |
contents: read | |
deployments: write | |
secrets: | |
phylum_api_key: ${{ secrets.PHYLUM_API_KEY }} | |
with: | |
phylum_pr_number: ${{ github.event.number }} | |
phylum_pr_name: ${{ github.head_ref }} | |
phylum_group_name: Wallet | |
phylum_project_id: fb999d0c-b260-474e-8c08-2f163aa2c75f | |
github_repository: ${{ github.repository }} | |
add_report_comment_to_pull_request: true | |
# cargo check | |
check-cargo-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Install Rust Toolchain | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
default: true | |
profile: minimal | |
- name: Cargo Check | |
run: cargo check --all | |
# cargo fmt check | |
check-formatting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Install Rust Toolchain | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
default: true | |
components: rustfmt | |
- name: Check formatting | |
run: cargo fmt --check | |
# clippy | |
check-clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Install Rust Toolchain | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
default: true | |
components: clippy | |
- name: Clippy Check | |
run: cargo clippy --all | |
# Rust unit, doc and integration | |
test-rust: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Install Rust Toolchain | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
default: true | |
- name: Run rust tests | |
run: cargo test | |
# Swift testing on macOS (Apple Silicon) | |
test-swift: | |
runs-on: macos-14-xlarge | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- uses: RDXWorks-actions/setup-xcode@master | |
with: | |
xcode-version: "15.3.0" | |
- name: Install Rust Toolchain for aarch64-apple-darwin | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
target: aarch64-apple-darwin | |
- name: Build for macOS target and run swift test | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
rustup target add aarch64-apple-darwin | |
sh ./scripts/ios/test.sh --build --codecov ${{ env.SWIFT_CODE_COV_REPORT_PATH }} | |
- name: Upload to CodeCov.io | |
uses: RDXWorks-actions/codecov-action@main | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
files: ${{ env.SWIFT_CODE_COV_REPORT_PATH }} | |
name: codecov-swift | |
flags: swift | |
# Kotlin test run on JVM on macOS (Apple Silicon) | |
test-kotlin: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- name: Install Rust Toolchain for x86_64-unknown-linux-gnu | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
components: ${{ env.RUST_COMPONENTS }} | |
target: x86_64-unknown-linux-gnu | |
default: 'true' | |
- name: Rustc version | |
run: cargo --version --verbose | |
- name: Set up JDK 17 | |
uses: RDXWorks-actions/setup-java@v3 | |
with: | |
distribution: "adopt" | |
java-version: "17" | |
- name: Setup Android SDK | |
uses: RDXWorks-actions/setup-android@v2 | |
- name: Unit test with coverage | |
uses: RDXWorks-actions/gradle-build-action@main | |
with: | |
arguments: sargon-android:koverXmlReportDebug | |
build-root-directory: jvm | |
- name: Upload to CodeCov.io | |
uses: RDXWorks-actions/codecov-action@main | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
file: ./jvm/sargon-android/build/reports/kover/reportDebug.xml | |
name: codecov-jvm | |
flags: kotlin | |
# Code Coverage uses Tarpaulin and uploads to CodeCov.io | |
code-coverage: | |
runs-on: macos-14-xlarge | |
steps: | |
- uses: RDXWorks-actions/checkout@main | |
- uses: RDXWorks-actions/setup-xcode@master | |
with: | |
# trying to fix https://github.com/rust-lang/rust/issues/113783 | |
xcode-version: "15.3.0" | |
- name: Install Rust Toolchain | |
uses: RDXWorks-actions/toolchain@master | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
default: true | |
- name: Install cargo tarpaulin | |
uses: RDXWorks-actions/cargo-install@main | |
with: | |
crate: cargo-tarpaulin | |
tag: 0.30.0 | |
locked: true | |
- name: Code Coverage - Generate | |
run: cargo tarpaulin | |
- name: Code Coverage - Upload to CodeCov.io | |
uses: RDXWorks-actions/codecov-action@main | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
flags: rust |