aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml159
1 files changed, 0 insertions, 159 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 62e1e0a..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,159 +0,0 @@
-name: fparkan-ci
-
-on:
- push:
- branches: [devel, main]
- pull_request:
- branches: [devel, main]
- workflow_dispatch:
-
-jobs:
- msrv-backend-neutral:
- name: Pinned Rust backend-neutral crates
- runs-on: ubuntu-latest
- timeout-minutes: 20
- env:
- CARGO_TERM_COLOR: always
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- - uses: dtolnay/rust-toolchain@67ef31d5b988238dd797d409d6f9574278e20537
- with:
- toolchain: 1.98.1
- - name: Test backend-neutral crates
- run: >
- cargo test
- -p fparkan-animation
- -p fparkan-binary
- -p fparkan-corpus
- -p fparkan-diagnostics
- -p fparkan-fx
- -p fparkan-inspection
- -p fparkan-material
- -p fparkan-mission-format
- -p fparkan-msh
- -p fparkan-nres
- -p fparkan-path
- -p fparkan-platform
- -p fparkan-prototype
- -p fparkan-render
- -p fparkan-resource
- -p fparkan-rsli
- -p fparkan-runtime
- -p fparkan-terrain
- -p fparkan-terrain-format
- -p fparkan-texm
- -p fparkan-vfs
- -p fparkan-world
- --all-targets
- --locked
-
- stage0-matrix:
- name: Stage 0 CI (${{ matrix.os }})
- runs-on: ${{ matrix.os }}
- timeout-minutes: 30
- strategy:
- fail-fast: false
- matrix:
- include:
- - os: macos-15
- smoke_platform: macos
- runner_arch: arm64
- moltenvk_version: 1.4.1
- vulkan_sdk_version: 1.4.350.1
- env:
- CARGO_TERM_COLOR: always
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- - uses: dtolnay/rust-toolchain@67ef31d5b988238dd797d409d6f9574278e20537
- with:
- toolchain: 1.98.1
- components: clippy,rustfmt
- - name: Provision macOS Vulkan runtime
- shell: bash
- run: |
- set -euo pipefail
- brew install molten-vk vulkan-loader vulkan-tools vulkan-validationlayers
- test "$(uname -m)" = "${{ matrix.runner_arch }}"
- ruby <<'RUBY'
- require "json"
-
- expected = {
- "molten-vk" => "${{ matrix.moltenvk_version }}",
- "vulkan-loader" => "${{ matrix.vulkan_sdk_version }}",
- "vulkan-tools" => "${{ matrix.vulkan_sdk_version }}",
- "vulkan-validationlayers" => "${{ matrix.vulkan_sdk_version }}",
- }
- payload = JSON.parse(`brew info --json=v2 #{expected.keys.join(" ")}`)
- actual = payload.fetch("formulae").to_h do |formula|
- [formula.fetch("name"), formula.fetch("versions").fetch("stable")]
- end
- mismatches = expected.each_with_object({}) do |(name, version), out|
- actual_version = actual[name]
- next if actual_version == version
-
- out[name] = {
- "expected" => version,
- "actual" => actual_version,
- }
- end
- unless mismatches.empty?
- warn JSON.pretty_generate(mismatches)
- abort "unexpected macOS Vulkan formula version"
- end
- RUBY
- HOMEBREW_PREFIX="$(brew --prefix)"
- VK_ICD_FILENAMES="$HOMEBREW_PREFIX/opt/molten-vk/etc/vulkan/icd.d/MoltenVK_icd.json"
- VK_LAYER_PATH="$HOMEBREW_PREFIX/opt/vulkan-validationlayers/share/vulkan/explicit_layer.d"
- DYLD_FALLBACK_LIBRARY_PATH="$HOMEBREW_PREFIX/opt/vulkan-loader/lib:$HOMEBREW_PREFIX/opt/molten-vk/lib"
- test -f "$VK_ICD_FILENAMES"
- test -d "$VK_LAYER_PATH"
- echo "VK_ICD_FILENAMES=$VK_ICD_FILENAMES" >> "$GITHUB_ENV"
- echo "VK_LAYER_PATH=$VK_LAYER_PATH" >> "$GITHUB_ENV"
- echo "DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH" >> "$GITHUB_ENV"
- - name: Install cargo-deny
- run: cargo install cargo-deny --version 0.19.9 --locked
- - name: Verify shader provenance
- run: cargo xtask shader-provenance
- - name: Run canonical CI gate
- run: cargo xtask ci
- - name: Run native Vulkan smoke
- run: >
- cargo run -p fparkan-vulkan-smoke --locked --
- --out "target/fparkan/native-smoke/${{ matrix.smoke_platform }}.json"
- --timeout-seconds 120
- - name: Upload acceptance audit
- if: always()
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
- with:
- name: stage-0-acceptance-${{ matrix.os }}
- path: target/fparkan/acceptance/stage-0-audit.json
- if-no-files-found: error
- - name: Upload native smoke report
- if: always()
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
- with:
- name: native-smoke-${{ matrix.smoke_platform }}
- path: target/fparkan/native-smoke/*.json
- if-no-files-found: error
-
- native-smoke-audit:
- name: Native smoke audit
- runs-on: ubuntu-latest
- timeout-minutes: 15
- needs: stage0-matrix
- env:
- CARGO_TERM_COLOR: always
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- - uses: dtolnay/rust-toolchain@67ef31d5b988238dd797d409d6f9574278e20537
- with:
- toolchain: 1.98.1
- - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
- with:
- pattern: native-smoke-*
- path: target/fparkan/native-smoke-artifacts
- merge-multiple: true
- - name: Aggregate native smoke reports
- run: >
- cargo xtask native-smoke audit
- --dir target/fparkan/native-smoke-artifacts