ci: move CI back to GitHub Actions, add a macOS job
The Gitea migration left CI on the self-hosted instance with every
cache commented out and the CD workflow broken at parse time
(kiname:). CI runs on GitHub-hosted runners again:
- Linux: ubuntu-latest with the rust toolchain from
dtolnay/rust-toolchain (the self-hosted runner's custom
RUSTUP_HOME/CARGO_HOME lines are gone) and the cargo + FFmpeg caches
re-enabled.
- Windows: windows-latest with msys2/setup-msys2 provisioning the
UCRT64 environment (the Gitea runner had it preinstalled); the
msys2 {0} shell, the GNU-target MSYS2 Rust, the
OCIO_RS_NO_MSVC_INCLUDES gate and the -lmsvcrt link-order workaround
carry over, as do both caches.
- macOS: new job on macos-14 (Apple Silicon) — Homebrew deps, vendored
static OCIO, cached FFmpeg, cargo check + the full suite with the
same retry-once flake policy.
CD fixes: the kiname: typo that kept the workflow from parsing, the
Warp runner labels become the standard GitHub ones, and all eight
commented-out cache blocks are restored. The gpui submodule URL
follows the move to GitHub, the README badge points at the GitHub
workflow, and the .gitea directory is dropped.
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
# actionlint configuration: whitelist the custom self-hosted runner labels
|
||||
# used by the CI/CD workflows (Warp.dev runners on GitHub; the oak Gitea
|
||||
# instance's runners) so `actionlint ci.yml` / `actionlint cd.yml` passes.
|
||||
# See https://github.com/rhysd/actionlint/blob/main/docs/config.md
|
||||
self-hosted-runner:
|
||||
labels:
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
- oak-ubuntu-2404
|
||||
- oak-windows-2025
|
||||
@@ -0,0 +1,8 @@
|
||||
# actionlint configuration: whitelist the WarpBuild runner labels used by
|
||||
# the CI/CD workflows so `actionlint ci.yml` / `actionlint cd.yml` passes.
|
||||
# See https://github.com/rhysd/actionlint/blob/main/docs/config.md
|
||||
self-hosted-runner:
|
||||
labels:
|
||||
- warp-ubuntu-latest-x64-8x
|
||||
- warp-windows-latest-x64-16x
|
||||
- warp-macos-26-arm64-6x
|
||||
+42
-42
@@ -1,4 +1,4 @@
|
||||
kiname: CD
|
||||
name: CD
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -111,17 +111,17 @@ jobs:
|
||||
# main, whose vendored sources build on GCC >= 16).
|
||||
bash tooling/ocio-env.sh >> "$GITHUB_ENV"
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache cargo artifacts)
|
||||
# uses: Swatinem/rust-cache@v2
|
||||
# with:
|
||||
# shared-key: oak-${{ matrix.distro }}
|
||||
# cache-on-failure: true
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-${{ matrix.distro }}
|
||||
cache-on-failure: true
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache project FFmpeg)
|
||||
# uses: actions/cache@v4
|
||||
# with:
|
||||
# path: .cache/ffmpeg
|
||||
# key: ffmpeg-${{ matrix.distro }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-${{ matrix.distro }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
- name: Build project FFmpeg (static, GPL + free codecs + hwaccel)
|
||||
run: tooling/ffmpeg/build-ffmpeg.sh
|
||||
@@ -188,17 +188,17 @@ jobs:
|
||||
- name: Configure build environment
|
||||
run: bash tooling/ocio-env.sh >> "$GITHUB_ENV"
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache cargo artifacts)
|
||||
# uses: Swatinem/rust-cache@v2
|
||||
# with:
|
||||
# shared-key: oak-appimage
|
||||
# cache-on-failure: true
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-appimage
|
||||
cache-on-failure: true
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache project FFmpeg)
|
||||
# uses: actions/cache@v4
|
||||
# with:
|
||||
# path: .cache/ffmpeg
|
||||
# key: ffmpeg-appimage-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-appimage-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
- name: Build project FFmpeg (static, GPL + free codecs + hwaccel)
|
||||
run: tooling/ffmpeg/build-ffmpeg.sh
|
||||
@@ -227,7 +227,7 @@ jobs:
|
||||
|
||||
macos:
|
||||
name: macOS DMG (Apple Silicon)
|
||||
runs-on: warp-macos-15-arm64-6x
|
||||
runs-on: warp-macos-26-arm64-6x
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -254,17 +254,17 @@ jobs:
|
||||
echo "PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig/openjpeg"
|
||||
} >> "$GITHUB_ENV"
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache cargo artifacts)
|
||||
# uses: Swatinem/rust-cache@v2
|
||||
# with:
|
||||
# shared-key: oak-workspace
|
||||
# cache-on-failure: true
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-workspace
|
||||
cache-on-failure: true
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache project FFmpeg)
|
||||
# uses: actions/cache@v4
|
||||
# with:
|
||||
# path: .cache/ffmpeg
|
||||
# key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
- name: Build project FFmpeg (static, GPL + free codecs + hwaccel)
|
||||
run: |
|
||||
@@ -376,17 +376,17 @@ jobs:
|
||||
# failure.
|
||||
echo "OCIO_RS_NO_MSVC_INCLUDES=1" >> "$GITHUB_ENV"
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache cargo artifacts)
|
||||
# uses: Swatinem/rust-cache@v2
|
||||
# with:
|
||||
# shared-key: oak-workspace
|
||||
# cache-on-failure: true
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-workspace
|
||||
cache-on-failure: true
|
||||
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache project FFmpeg)
|
||||
# uses: actions/cache@v4
|
||||
# with:
|
||||
# path: .cache/ffmpeg
|
||||
# key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
- name: Build project FFmpeg (static, GPL + free codecs + hwaccel)
|
||||
run: |
|
||||
|
||||
@@ -18,7 +18,7 @@ permissions:
|
||||
jobs:
|
||||
linux:
|
||||
name: Build & test (Linux)
|
||||
runs-on: oak-ubuntu-2404
|
||||
runs-on: warp-ubuntu-latest-x64-8x
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -27,6 +27,9 @@ jobs:
|
||||
# their own repo and build as path dependencies of oakapp.
|
||||
submodules: true
|
||||
|
||||
- name: Install Rust (stable)
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# System dependencies
|
||||
# ------------------------------------------------------------------
|
||||
@@ -49,18 +52,14 @@ jobs:
|
||||
# ------------------------------------------------------------------
|
||||
# Build environment
|
||||
# ------------------------------------------------------------------
|
||||
# ocio-sys builds a stub bridge unless these are set; the oak-common
|
||||
# ocioutils tests need the real library (see crates/oak-common/.cargo/
|
||||
# config.toml, which only applies to builds run from that directory).
|
||||
# ocio-sys builds a stub bridge unless these are set; the oak-core
|
||||
# ocioutils tests need the real library.
|
||||
# tooling/ocio-env.sh: vendored static OCIO (the [patch.crates-io]
|
||||
# ocio-sys tracks shaloong/ocio-rs main, whose vendored sources build
|
||||
# on GCC >= 16).
|
||||
- name: Configure build environment
|
||||
run: |
|
||||
bash tooling/ocio-env.sh >> "$GITHUB_ENV"
|
||||
echo "RUSTUP_HOME=/opt/rust/rustup" >> "$GITHUB_ENV"
|
||||
echo "CARGO_HOME=/opt/rust/cargo" >> "$GITHUB_ENV"
|
||||
echo "PATH=$PATH:/opt/rust/cargo/bin" >> "$GITHUB_ENV"
|
||||
echo "FFMPEG_DIR=.cache/ffmpeg" >> "$GITHUB_ENV"
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
@@ -68,21 +67,21 @@ jobs:
|
||||
# ------------------------------------------------------------------
|
||||
# Covers the whole target/ dir plus ~/.cargo; shared across branches
|
||||
# of the same OS.
|
||||
# TEMP: cache disabled ntil the Gitea instance cache is provisioned (Cache cargo artifacts)
|
||||
# uses: Swatinem/rust-cache@v2
|
||||
# with:
|
||||
# shared-key: oak-workspace
|
||||
# cache-on-failure: true
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-ci-linux
|
||||
cache-on-failure: true
|
||||
|
||||
# The project FFmpeg (release/8.0, static, all free codecs + hwaccel)
|
||||
# is built by tooling/ffmpeg/build-ffmpeg.sh — 10-20 min on a cold
|
||||
# cache. It does not depend on the Rust toolchain, so key it on the
|
||||
# script itself and keep it out of rust-cache.
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache project FFmpeg)
|
||||
# uses: actions/cache@v4
|
||||
# with:
|
||||
# path: .cache/ffmpeg
|
||||
# key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Project FFmpeg (script + FFMPEG_DIR; see docs/build.md)
|
||||
@@ -104,8 +103,8 @@ jobs:
|
||||
# xvfb + 24-bit screen: the gpui #[gpui::test] tests open real windows
|
||||
# and render through wgpu on Mesa's software Vulkan (lavapipe).
|
||||
# The watchdog bounds the step: a deadlocked test produces no output
|
||||
# and no failure, so after 1500 s (a green run needs ~4 min) it dumps
|
||||
# every hung process's thread stacks and kills the suite.
|
||||
# and no failure, so after 1800 s it dumps every hung process's
|
||||
# thread stacks and kills the suite.
|
||||
- name: Test
|
||||
run: |
|
||||
sudo apt-get install -y gdb
|
||||
@@ -116,8 +115,8 @@ jobs:
|
||||
# it cannot keep the runner's I/O pipes open after the step
|
||||
# ends ("WaitDelay expired before I/O complete" otherwise).
|
||||
(
|
||||
sleep 1500
|
||||
echo "::warning::test suite exceeded 1500s; dumping hung-process stacks"
|
||||
sleep 1800
|
||||
echo "::warning::test suite exceeded 1800s; dumping hung-process stacks"
|
||||
for p in $(pgrep -f 'target/debug/deps/|target/debug/oak-worker'); do
|
||||
echo "===== thread stacks of pid $p ($(readlink /proc/$p/exe 2>/dev/null)) ====="
|
||||
sudo gdb -batch -ex 'thread apply all bt' -p "$p" || true
|
||||
@@ -200,10 +199,10 @@ jobs:
|
||||
|
||||
windows:
|
||||
name: Build & test (Windows)
|
||||
runs-on: oak-windows-2025
|
||||
runs-on: warp-windows-latest-x64-16x
|
||||
env:
|
||||
# The runner's msys2 shell starts as the base MSYS environment; the
|
||||
# build needs the UCRT64 one (mingw-w64-ucrt-x86_64-* toolchain).
|
||||
# The build needs the UCRT64 environment (mingw-w64-ucrt-x86_64-*
|
||||
# toolchain), not the base MSYS one.
|
||||
MSYSTEM: UCRT64
|
||||
defaults:
|
||||
run:
|
||||
@@ -215,13 +214,25 @@ jobs:
|
||||
# gpui/ is a git submodule; its crates are workspace members of
|
||||
# their own repo and build as path dependencies of oakapp.
|
||||
submodules: true
|
||||
|
||||
- name: Setup MSYS2
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: UCRT64
|
||||
update: true
|
||||
# MSYS2's own Rust targets x86_64-pc-windows-gnu by default —
|
||||
# the Windows build is GNU-target (the MSVC linker rejects the
|
||||
# Unix-style link args the build scripts emit).
|
||||
install: >-
|
||||
git
|
||||
mingw-w64-ucrt-x86_64-gcc
|
||||
mingw-w64-ucrt-x86_64-rust
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# System dependencies
|
||||
# ------------------------------------------------------------------
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
export PATH="/ucrt64/bin:$PATH"
|
||||
bash ./tooling/install-deps.sh
|
||||
pacman -S --needed --noconfirm \
|
||||
mingw-w64-ucrt-x86_64-cmake \
|
||||
@@ -238,8 +249,6 @@ jobs:
|
||||
# Dynamic here — the CD packages the DLLs next to the binaries.
|
||||
- name: Configure build environment
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
export PATH="/ucrt64/bin:$PATH"
|
||||
# System OCIO (MSYS2, the exact 2.5.2 the bridge targets);
|
||||
# tooling/ocio-env.sh links it STATICALLY when the package ships
|
||||
# libOpenColorIO.a, dynamically otherwise.
|
||||
@@ -261,29 +270,27 @@ jobs:
|
||||
# ------------------------------------------------------------------
|
||||
# Covers the whole target/ dir plus ~/.cargo; shared across branches
|
||||
# of the same OS.
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache cargo artifacts)
|
||||
# uses: Swatinem/rust-cache@v2
|
||||
# with:
|
||||
# shared-key: oak-workspace
|
||||
# cache-on-failure: true
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-ci-windows
|
||||
cache-on-failure: true
|
||||
|
||||
# The project FFmpeg (release/8.0, static, all free codecs + hwaccel)
|
||||
# is built by tooling/ffmpeg/build-ffmpeg.sh — 10-20 min on a cold
|
||||
# cache. It does not depend on the Rust toolchain, so key it on the
|
||||
# script itself and keep it out of rust-cache.
|
||||
# TEMP: cache disabled until the Gitea instance cache is provisioned (Cache project FFmpeg)
|
||||
# uses: actions/cache@v4
|
||||
# with:
|
||||
# path: .cache/ffmpeg
|
||||
# key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Project FFmpeg (script + FFMPEG_DIR; see docs/build.md)
|
||||
# ------------------------------------------------------------------
|
||||
- name: Build project FFmpeg
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
export PATH="/ucrt64/bin:$PATH"
|
||||
bash tooling/ffmpeg/build-ffmpeg.sh
|
||||
echo "FFMPEG_DIR=$(cygpath -m "$PWD/.cache/ffmpeg")" >> "$GITHUB_ENV"
|
||||
|
||||
@@ -292,30 +299,24 @@ jobs:
|
||||
# ------------------------------------------------------------------
|
||||
# `cargo check` (not build): the Test step links the test binaries
|
||||
# anyway, and a full build would codegen every workspace crate twice
|
||||
# (once without and once with cfg(test)).
|
||||
# (once without and once with cfg(test)). cargo check performs no
|
||||
# final link, so the mingw-w64 link-order workaround is only needed
|
||||
# in the Test step.
|
||||
- name: Build
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
export PATH="/ucrt64/bin:$PATH"
|
||||
# The runner's job hook injects the MSVC INCLUDE/LIB into every
|
||||
# step; clear them in-step (they poison the MinGW compiles with
|
||||
# MSVC SDK headers).
|
||||
# unset INCLUDE LIB
|
||||
cargo check --workspace --locked
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
# The GitHub image injects the MSVC INCLUDE/LIB into the
|
||||
# environment; clear them in-step (they poison the MinGW
|
||||
# compiles with MSVC SDK headers).
|
||||
unset INCLUDE LIB
|
||||
# mingw-w64 >= Nov 2025 forwards _assert to __msvcrt_assert inside
|
||||
# libmingwex.a; rustc's link order puts -lmingwex last, so any
|
||||
# binary that pulls _assert.o leaves _fileno/_setmode/
|
||||
# __imp___msvcrt_assert unresolved. A trailing -lmsvcrt re-scans
|
||||
# the CRT import lib after libmingwex.
|
||||
# export RUSTFLAGS="-C link-args=-lmsvcrt"
|
||||
cargo check --workspace --locked
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
export PATH="/ucrt64/bin:$PATH"
|
||||
unset INCLUDE LIB
|
||||
# See Build (Windows): trailing -lmsvcrt for the mingw-w64
|
||||
# _assert/__msvcrt_assert link-order breakage.
|
||||
export RUSTFLAGS="-C link-args=-lmsvcrt"
|
||||
if ! cargo test --workspace --locked; then
|
||||
# Retry once: a few gpui keystroke tests flake on Windows CI —
|
||||
@@ -326,3 +327,92 @@ jobs:
|
||||
echo "first pass failed; retrying once for gpui keystroke flakes"
|
||||
cargo test --workspace --locked
|
||||
fi
|
||||
|
||||
macos:
|
||||
name: Build & test (macOS)
|
||||
runs-on: warp-macos-26-arm64-6x
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# gpui/ is a git submodule; its crates are workspace members of
|
||||
# their own repo and build as path dependencies of oakapp.
|
||||
submodules: true
|
||||
|
||||
- name: Install Rust (stable)
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# System dependencies
|
||||
# ------------------------------------------------------------------
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
tooling/install-deps.sh
|
||||
brew install cmake
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Build environment
|
||||
# ------------------------------------------------------------------
|
||||
- name: Configure build environment
|
||||
run: |
|
||||
# Vendored static OCIO (same as every non-Windows platform via
|
||||
# tooling/ocio-env.sh); no OCIO_INSTALL_DIR override.
|
||||
bash tooling/ocio-env.sh >> "$GITHUB_ENV"
|
||||
# Homebrew quirks: lame.pc / snappy / libopenjp2.pc live off the
|
||||
# default pkg-config search paths (see docs/build.md).
|
||||
{
|
||||
echo "CFLAGS=-I/opt/homebrew/include"
|
||||
echo "LDFLAGS=-L/opt/homebrew/lib"
|
||||
echo "PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig/openjpeg"
|
||||
} >> "$GITHUB_ENV"
|
||||
echo "FFMPEG_DIR=.cache/ffmpeg" >> "$GITHUB_ENV"
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Caches
|
||||
# ------------------------------------------------------------------
|
||||
# Covers the whole target/ dir plus ~/.cargo; shared across branches
|
||||
# of the same OS.
|
||||
- name: Cache cargo artifacts
|
||||
uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
shared-key: oak-ci-macos
|
||||
cache-on-failure: true
|
||||
|
||||
# The project FFmpeg (release/8.0, static, all free codecs + hwaccel)
|
||||
# is built by tooling/ffmpeg/build-ffmpeg.sh — 10-20 min on a cold
|
||||
# cache. It does not depend on the Rust toolchain, so key it on the
|
||||
# script itself and keep it out of rust-cache.
|
||||
- name: Cache project FFmpeg
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .cache/ffmpeg
|
||||
key: ffmpeg-${{ runner.os }}-${{ hashFiles('tooling/ffmpeg/build-ffmpeg.sh') }}
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Project FFmpeg (script + FFMPEG_DIR; see docs/build.md)
|
||||
# ------------------------------------------------------------------
|
||||
- name: Build project FFmpeg
|
||||
run: |
|
||||
tooling/ffmpeg/build-ffmpeg.sh
|
||||
echo "FFMPEG_DIR=$PWD/.cache/ffmpeg" >> "$GITHUB_ENV"
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Build & test
|
||||
# ------------------------------------------------------------------
|
||||
# `cargo check` (not build): the Test step links the test binaries
|
||||
# anyway, and a full build would codegen every workspace crate twice
|
||||
# (once without and once with cfg(test)).
|
||||
- name: Build
|
||||
run: cargo check --workspace --locked
|
||||
|
||||
# The runner's GUI session doubles as the display for the gpui
|
||||
# #[gpui::test] windows; wgpu renders through Metal.
|
||||
- name: Test
|
||||
run: |
|
||||
# Retry once (same policy as the other platforms): worker-pool
|
||||
# startup under full-suite parallelism has flaked on Linux. A
|
||||
# real regression fails both passes.
|
||||
if ! cargo test --workspace --locked; then
|
||||
echo "first pass failed; retrying once for worker-pool flakes"
|
||||
cargo test --workspace --locked
|
||||
fi
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
[submodule "gpui"]
|
||||
path = gpui
|
||||
url = https://git.oakvideoeditor.org/oak-team/oak-gpui.git
|
||||
url = https://github.com/OakVideoEditorCommunity/oak-gpui.git
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Oak Video Editor 
|
||||
# Oak Video Editor 
|
||||
[中文](docs/zh/README.md)
|
||||
|
||||
Oak Video Editor is a free non-linear video editor for Windows, macOS, and Linux.
|
||||
|
||||
Reference in New Issue
Block a user