Skip to content

chore(deps): bump profiling from 1.0.17 to 1.0.18 (#182) #530

chore(deps): bump profiling from 1.0.17 to 1.0.18 (#182)

chore(deps): bump profiling from 1.0.17 to 1.0.18 (#182) #530

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings
jobs:
version-sync:
name: Version Sync
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
- name: Verify workspace versions are aligned
run: ./scripts/check-version-sync.sh
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
- run: rustup component add rustfmt
- run: cargo fmt --all -- --check
maintainability:
name: Maintainability
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
lfs: true
- run: ./scripts/check-maintainability.sh
clippy:
name: Clippy
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: Swatinem/rust-cache@v2
- run: rustup component add clippy
- run: cargo clippy --all-targets --all-features -- -D warnings
clippy-strict:
name: Clippy (strict)
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: Swatinem/rust-cache@v2
- run: rustup component add clippy
- run: cargo clippy --workspace --lib --bins --examples -- -D warnings -D clippy::unwrap_used -D clippy::expect_used
clippy-pedantic:
name: Clippy (pedantic — advisory)
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: Swatinem/rust-cache@v2
- run: rustup component add clippy
- name: Run pedantic audit (non-blocking)
run: |
cargo clippy --workspace --all-targets --all-features -- -D warnings -W clippy::pedantic || {
echo "::warning::Pedantic lint debt detected (non-blocking advisory job)."
}
rust-test:
name: Tests (${{ matrix.name }})
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
name: Linux x64
cache_key: linux-test
- os: macos-latest
name: macOS arm64
cache_key: macos-test
- os: macos-15-intel
name: macOS x64
cache_key: macos-intel-test
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.cache_key }}
- run: cargo test --workspace
windows-smoke:
name: Windows test build
runs-on: windows-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: Swatinem/rust-cache@v2
with:
key: windows-test-build
- run: cargo test --workspace --no-run
snap-build-inputs:
name: Snap Build Inputs
runs-on: ubuntu-latest
outputs:
run_snap_build: ${{ steps.detect.outputs.run_snap_build }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- id: detect
name: Detect Snap packaging changes
shell: bash
env:
EVENT_NAME: ${{ github.event_name }}
BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }}
HEAD_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
run: |
if [ "$EVENT_NAME" = "workflow_dispatch" ]; then
echo "run_snap_build=true" >> "$GITHUB_OUTPUT"
exit 0
fi
if [ -z "$BASE_SHA" ] || [ "$BASE_SHA" = "0000000000000000000000000000000000000000" ]; then
echo "run_snap_build=true" >> "$GITHUB_OUTPUT"
exit 0
fi
run_snap_build=false
while IFS= read -r path; do
case "$path" in
.github/workflows/ci.yml|.github/workflows/release.yml|scripts/build-surge-toolchain.sh|scripts/package-release-asset.sh|scripts/stage-surge-artifacts.sh|snap/*|packaging/linux/*|assets/icons/*)
run_snap_build=true
break
;;
esac
done < <(git diff --name-only "$BASE_SHA" "$HEAD_SHA")
echo "run_snap_build=$run_snap_build" >> "$GITHUB_OUTPUT"
snap-build:
name: Snap Build
needs: snap-build-inputs
# Disabled: Snap packaging paused. Re-enable by restoring the previous
# condition: needs.snap-build-inputs.outputs.run_snap_build == 'true'
if: false
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: snapcore/action-build@v1
id: snapcraft
with:
path: .
- name: Upload snap artifact
uses: actions/upload-artifact@v7
with:
name: horizon-linux-x64.snap
path: ${{ steps.snapcraft.outputs.snap }}
rust-artifacts:
name: Artifacts (${{ matrix.name }})
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
name: Linux x64
cache_key: linux-artifacts
release_asset: horizon-linux-x64.tar.gz
binary_path: target/release/horizon
asset_kind: tar
- os: macos-latest
name: macOS arm64
cache_key: macos-artifacts
release_asset: horizon-osx-arm64.tar.gz
binary_path: target/release/horizon
asset_kind: tar
- os: macos-15-intel
name: macOS x64
cache_key: macos-intel-artifacts
release_asset: horizon-osx-x64.tar.gz
binary_path: target/release/horizon
asset_kind: tar
- os: windows-latest
name: Windows x64
cache_key: windows-artifacts
release_asset: horizon-windows-x64.exe
binary_path: target/release/horizon.exe
asset_kind: file
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.cache_key }}
- run: cargo build --release
- name: Package release asset
shell: bash
run: |
./scripts/package-release-asset.sh \
--binary "${{ matrix.binary_path }}" \
--kind "${{ matrix.asset_kind }}" \
--output "${{ matrix.release_asset }}"
- name: Upload release asset
uses: actions/upload-artifact@v7
with:
name: ${{ matrix.release_asset }}
path: ${{ matrix.release_asset }}