name: Cargo Build & Test on: pull_request: jobs: test: container: git.kjan.de/actions/rust-node@sha256:49fb2dad7814507334a38ea36ec2852a552cebc5b421ec22295d8a01421cd435 name: Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - name: ⚡ Cache uses: https://git.kjan.de/actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 with: path: | ~/.cargo/registry ~/.cargo/git target/release/deps target/release/build target key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}-loadstar - run: cargo test can-publish: container: git.kjan.de/actions/rust-node@sha256:49fb2dad7814507334a38ea36ec2852a552cebc5b421ec22295d8a01421cd435 name: Test publish runs-on: ubuntu-latest steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - name: ⚡ Cache uses: https://git.kjan.de/actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 with: path: | ~/.cargo/registry ~/.cargo/git target/release/deps target/release/build target key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}-loadstar - run: cargo publish -n check-cargo-version: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Get current version from Cargo.toml id: cargo-version run: | # Extract the version from Cargo.toml in the PR branch CARGO_VERSION=$(grep '^version' Cargo.toml | sed -e 's/version = "//' -e 's/"//') echo "cargo_version=$CARGO_VERSION" >> $GITHUB_ENV - name: Get previous version from main branch id: main-cargo-version run: | # Fetch the Cargo.toml from the main branch and extract its version git fetch origin main MAIN_CARGO_VERSION=$(git show origin/main:Cargo.toml | grep '^version' | sed -e 's/version = "//' -e 's/"//') echo "main_cargo_version=$MAIN_CARGO_VERSION" >> $GITHUB_ENV - name: Compare versions run: | if [ "$cargo_version" = "$main_cargo_version" ]; then echo "Cargo version has not been updated." exit 1 else echo "Cargo version has been updated." fi