ci: Add windows-ci-shared
that uses vcpkg
.
#178
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [auto] | |
pull_request: | |
workflow_dispatch: | |
merge_group: | |
types: [checks_requested] | |
jobs: | |
linux-ci-shared: | |
name: stable, Linux, shared library | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: install harfbuzz from apt | |
run: | | |
sudo apt update | |
sudo apt install libharfbuzz-dev | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Cargo build | |
run: cargo build --workspace | |
- name: Cargo test | |
run: cargo test --workspace | |
env: | |
RUST_BACKTRACE: 1 | |
- name: Cargo check no-default-features | |
run: cargo check --no-default-features | |
env: | |
RUST_BACKTRACE: 1 | |
linux-ci-static: | |
name: stable, Linux, static linking, no pkg-config | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
# Test the harfbuzz-sys package build to check the 'exclude's. We should | |
# do this where the embedded harfbuzz is statically linked, but we don't | |
# need to do it for every environment. | |
- name: Cargo package | |
run: cargo package --manifest-path=harfbuzz-sys/Cargo.toml --features bundled | |
- name: Cargo build | |
run: cargo build --workspace --features bundled | |
- name: Cargo clippy | |
run: cargo clippy --workspace --features bundled -- -D warnings | |
- name: Cargo test | |
run: cargo test --workspace --features bundled | |
env: | |
RUST_BACKTRACE: 1 | |
mac-ci-shared: | |
name: stable, macOS, shared library | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: install harfbuzz from homebrew | |
run: | | |
brew install harfbuzz | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Cargo build | |
run: cargo build --workspace | |
- name: Cargo test | |
run: cargo test --workspace | |
env: | |
RUST_BACKTRACE: 1 | |
mac-ci-static: | |
name: stable, macOS, static library | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Cargo build | |
run: cargo build --workspace --features bundled | |
- name: Cargo test | |
run: cargo test --workspace --features bundled | |
env: | |
RUST_BACKTRACE: 1 | |
windows-ci-shared: | |
name: stable, Windows, shared library | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install harfbuzz from vckpkg | |
run: vcpkg install harfbuzz:x64-windows | |
- name: Cargo build | |
run: cargo build --workspace | |
- name: Cargo test | |
run: cargo test --workspace | |
env: | |
RUST_BACKTRACE: 1 | |
windows-ci-static: | |
name: stable, Windows, static library | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Cargo build | |
run: cargo build --workspace --features bundled | |
- name: Cargo test | |
run: cargo test --workspace --features bundled | |
env: | |
RUST_BACKTRACE: 1 | |
wasm32-emscripten-ci: | |
name: stable, Emscripten, static library | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: mymindstorm/setup-emsdk@v12 | |
with: | |
version: "3.1.44" | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: wasm32-unknown-emscripten | |
- name: Cargo build | |
run: cargo build --target wasm32-unknown-emscripten --workspace --no-default-features --features bundled | |
ios-ci-static: | |
name: stable, iOS, static library | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: aarch64-apple-ios | |
- name: Cargo build | |
run: cargo build --target aarch64-apple-ios --workspace --no-default-features --features "bundled, coretext" | |
build_result: | |
name: Result | |
runs-on: ubuntu-latest | |
needs: | |
- "ios-ci-static" | |
- "linux-ci-static" | |
- "linux-ci-shared" | |
- "mac-ci-shared" | |
- "mac-ci-static" | |
- "wasm32-emscripten-ci" | |
- "windows-ci-shared" | |
- "windows-ci-static" | |
steps: | |
- name: Mark the job as successful | |
run: exit 0 | |
if: success() | |
- name: Mark the job as unsuccessful | |
run: exit 1 | |
if: "!success()" | |