Skip to content

Revamp release and CI workflows #17

Revamp release and CI workflows

Revamp release and CI workflows #17

Workflow file for this run

name: CI
on:
pull_request:
env:
CARGO_TERM_COLOR: always
DOTNET_CLI_HOME: ${{ github.workspace }}\.dotnet
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
integrity:
name: project integrity (windows)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Install Rust stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: Install .NET SDK
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
- name: Cache Cargo dependencies
uses: Swatinem/rust-cache@v2
- name: Verify CI
run: cargo run -p dhara_tool -- verify ci
publish-readiness:
name: publish readiness (windows)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: true
- name: Install Rust stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Add Rust targets
run: rustup target add aarch64-pc-windows-msvc
- name: Install .NET SDK
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
- name: Cache Cargo dependencies
uses: Swatinem/rust-cache@v2
- name: Verify publish readiness
shell: pwsh
run: |
$vsInstall = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.Tools.ARM64 -property installationPath
if ([string]::IsNullOrWhiteSpace($vsInstall)) {
throw "Visual Studio with x64 and ARM64 MSVC build tools was not found."
}
$vcvars = Join-Path $vsInstall "VC\Auxiliary\Build\vcvarsall.bat"
$command = "call `"$vcvars`" x64_arm64 && cargo run -p dhara_tool -- verify release-config && cargo run -p dhara_tool -- verify docs && cargo run -p dhara_tool -- verify package"
& cmd.exe /d /c $command
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}