Skip to content

Mention both upstream ExternalData merge requests #47

Mention both upstream ExternalData merge requests

Mention both upstream ExternalData merge requests #47

Workflow file for this run

name: Smoke
on:
pull_request:
push:
branches:
- master
jobs:
smoke:
name: ${{ matrix.os }} / ${{ matrix.link_mode }}
runs-on: ${{ matrix.os }}
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
link_mode:
- symlink
- hardlink
- copy
include:
- os: ubuntu-latest
native_build_arg: -j1
- os: windows-latest
native_build_arg: /m:1
env:
NAM_CACHE_ROOT: ${{ github.workspace }}/.nam-cache
SMOKE_BUILD_DIR: ${{ github.workspace }}/smoke/build
steps:
- uses: actions/checkout@v6
- name: Checkout first-party manifests
uses: actions/checkout@v6
with:
repository: Devsh-Graphics-Programming/Nabla-Asset-Manifests
path: official-manifests
- name: Restore NAM cache
uses: actions/cache@v5
with:
path: ${{ env.NAM_CACHE_ROOT }}
key: nam-cache-${{ runner.os }}-${{ hashFiles('official-manifests/**/*.dvc') }}
restore-keys: |
nam-cache-${{ runner.os }}-
- name: Configure smoke
shell: pwsh
run: |
cmake -E rm -rf $env:SMOKE_BUILD_DIR
cmake -E make_directory $env:NAM_CACHE_ROOT
$cmakeArgs = @(
'-S', 'smoke',
'-B', $env:SMOKE_BUILD_DIR,
"-DNAM_SMOKE_CACHE_ROOT=$env:NAM_CACHE_ROOT",
"-DNAM_SMOKE_MANIFEST_ROOT=$env:GITHUB_WORKSPACE/official-manifests",
"-DNAM_SMOKE_LINK_MODE=${{ matrix.link_mode }}"
)
& cmake @cmakeArgs
- name: Build smoke
shell: pwsh
run: cmake --build $env:SMOKE_BUILD_DIR --config Debug --target media -- ${{ matrix.native_build_arg }}
- name: Verify materialization stats
shell: pwsh
run: |
python smoke/ci/verify_materialization.py `
--build-dir $env:SMOKE_BUILD_DIR `
--cache-root $env:NAM_CACHE_ROOT `
--expected-mode ${{ matrix.link_mode }} `
--forbid-tree .nam/media/assets
smoke-flatten:
name: flatten / ${{ matrix.os }} / ${{ matrix.link_mode }}
runs-on: ${{ matrix.os }}
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
link_mode:
- hardlink
include:
- os: ubuntu-latest
native_build_arg: -j1
- os: windows-latest
native_build_arg: /m:1
env:
GH_TOKEN: ${{ github.token }}
NAM_CACHE_ROOT: ${{ github.workspace }}/.nam-cache-flat
SMOKE_BUILD_DIR: ${{ github.workspace }}/smoke/build-flat
SMOKE_MANIFEST_DIR: ${{ github.workspace }}/official-manifests
steps:
- uses: actions/checkout@v6
- name: Download smoke-flatten manifests
shell: pwsh
run: |
cmake -E rm -rf $env:SMOKE_MANIFEST_DIR
cmake -E make_directory $env:SMOKE_MANIFEST_DIR
gh release download smoke-flatten `
--repo Devsh-Graphics-Programming/Nabla-Asset-Manifests `
--pattern smoke-flatten-manifests.zip `
--dir $env:GITHUB_WORKSPACE
Expand-Archive `
-Path "$env:GITHUB_WORKSPACE/smoke-flatten-manifests.zip" `
-DestinationPath $env:SMOKE_MANIFEST_DIR `
-Force
- name: Restore NAM flat cache
uses: actions/cache@v5
with:
path: ${{ env.NAM_CACHE_ROOT }}
key: nam-flat-cache-${{ runner.os }}-smoke-flatten-v1
restore-keys: |
nam-flat-cache-${{ runner.os }}-
- name: Configure flatten smoke
shell: pwsh
run: |
cmake -E rm -rf $env:SMOKE_BUILD_DIR
cmake -E make_directory $env:NAM_CACHE_ROOT
$cmakeArgs = @(
'-S', 'smoke',
'-B', $env:SMOKE_BUILD_DIR,
"-DNAM_SMOKE_CACHE_ROOT=$env:NAM_CACHE_ROOT",
"-DNAM_SMOKE_MANIFEST_ROOT=$env:SMOKE_MANIFEST_DIR",
'-DNAM_SMOKE_REPO=Devsh-Graphics-Programming/Nabla-Asset-Manifests',
'-DNAM_SMOKE_TAG=smoke-flatten',
'-DNAM_SMOKE_CHANNEL=smoke-flatten',
'-DNAM_SMOKE_FLAT_RELEASE_ASSET_NAMES=ON',
"-DNAM_SMOKE_LINK_MODE=${{ matrix.link_mode }}"
)
& cmake @cmakeArgs
- name: Build flatten smoke
shell: pwsh
run: cmake --build $env:SMOKE_BUILD_DIR --config Debug --target media -- ${{ matrix.native_build_arg }}
- name: Verify flatten materialization stats
shell: pwsh
run: |
python smoke/ci/verify_materialization.py `
--build-dir $env:SMOKE_BUILD_DIR `
--cache-root $env:NAM_CACHE_ROOT `
--expected-mode ${{ matrix.link_mode }} `
--root-subdir smoke-flatten `
--require-path alpha/config.dummy `
--require-path gamma/tools/run.dummy `
--require-path theta/one/two/three/value.dummy `
--require-path lambda/modules/deep/config.dummy `
--forbid-substring __ `
--forbid-tree .nam/smoke-flatten/assets