Some checks failed
Release Docker Image / define-variables (push) Successful in 3s
Documentation / Build and Deploy Documentation (pull_request) Successful in 42s
Checks / Prek / Pre-commit & Formatting (push) Successful in 1m19s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 16m26s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 18m53s
Release Docker Image / merge (push) Successful in 27s
Checks / Prek / Clippy and Cargo Tests (push) Failing after 2m10s
Merge rust-checks.yml into prek-checks.yml for a unified workflow that runs formatting and clippy/test checks in parallel jobs. Add reusable composite actions: - setup-rust: Smart Rust toolchain management with caching * Uses cargo-binstall for pre-built binary downloads * Integrates Mozilla sccache-action for compilation caching * Workspace-relative paths for better cache control * GitHub token support for improved rate limits - setup-llvm-with-apt: LLVM installation with native dependencies - detect-runner-os: Consistent OS detection for cache keys Key improvements: - Install prek via cargo-binstall --git (crates.io outdated at v0.0.1) - Download timelord-cli from cargo-quickinstall - Set BINSTALL_MAXIMUM_RESOLUTION_TIMEOUT=10 to avoid rate limit delays - Default Rust version 1.87.0 with override support - Remove redundant sccache stats (handled by Mozilla action) Significantly reduces CI runtime through binary downloads instead of compilation while maintaining all existing quality checks.
39 lines
1.3 KiB
YAML
39 lines
1.3 KiB
YAML
name: detect-runner-os
|
|
description: |
|
|
Detect the actual OS name and version of the runner.
|
|
Provides separate outputs for name, version, and a combined slug.
|
|
|
|
outputs:
|
|
name:
|
|
description: 'OS name (e.g. Ubuntu, Debian)'
|
|
value: ${{ steps.detect.outputs.name }}
|
|
version:
|
|
description: 'OS version (e.g. 22.04, 11)'
|
|
value: ${{ steps.detect.outputs.version }}
|
|
slug:
|
|
description: 'Combined OS slug (e.g. Ubuntu-22.04)'
|
|
value: ${{ steps.detect.outputs.slug }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Detect runner OS
|
|
id: detect
|
|
shell: bash
|
|
run: |
|
|
# Detect OS version (try lsb_release first, fall back to /etc/os-release)
|
|
OS_VERSION=$(lsb_release -rs 2>/dev/null || grep VERSION_ID /etc/os-release | cut -d'"' -f2)
|
|
|
|
# Detect OS name and capitalise (try lsb_release first, fall back to /etc/os-release)
|
|
OS_NAME=$(lsb_release -is 2>/dev/null || grep "^ID=" /etc/os-release | cut -d'=' -f2 | tr -d '"' | sed 's/\b\(.\)/\u\1/g')
|
|
|
|
# Create combined slug
|
|
OS_SLUG="${OS_NAME}-${OS_VERSION}"
|
|
|
|
# Set outputs
|
|
echo "name=${OS_NAME}" >> $GITHUB_OUTPUT
|
|
echo "version=${OS_VERSION}" >> $GITHUB_OUTPUT
|
|
echo "slug=${OS_SLUG}" >> $GITHUB_OUTPUT
|
|
|
|
# Log detection results
|
|
echo "🔍 Detected Runner OS: ${OS_NAME} ${OS_VERSION}"
|