Author SHA1 Message Date
Yota Toyama 6136c4f3f7 Fix 2026-09-25 21:01:25 -07:00
Yota Toyama 76bf20d8e3 Add lint summary job 2026-09-25 20:59:55 -07:00
Yota Toyama 08ea694983 Use official Homebrew action 2026-09-25 20:58:02 -07:00
Yota Toyama d93e42910d Bundle unit tests into a matrix 2026-09-25 20:56:05 -07:00
Yota Toyama df593ee27c Fix 2026-09-25 20:54:55 -07:00
Yota Toyama 6e18b7b12b Fix 2026-09-25 20:51:47 -07:00
Yota Toyama e7fc7e39bf Multi platform tests 2026-09-25 20:47:10 -07:00
6 changed files with 67 additions and 23 deletions
+11
View File
@@ -0,0 +1,11 @@
name: setup
description: Sets up a build environment
inputs: {}
outputs: {}
runs:
using: composite
steps:
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
- uses: homebrew/actions/setup-homebrew@e99025eb970cfa124b8284a35463d87426917478 # main
- run: brew install autoconf automake libtool
shell: sh
+1 -1
View File
@@ -9,7 +9,7 @@ permissions:
pages: write pages: write
id-token: write id-token: write
jobs: jobs:
build: document:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+11 -1
View File
@@ -5,7 +5,7 @@ on:
- main - main
pull_request: pull_request:
jobs: jobs:
lint: clippy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -30,3 +30,13 @@ jobs:
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0 - uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0
lint:
needs:
- clippy
- format
- spell-check
- readme
if: always()
runs-on: ubuntu-latest
steps:
- run: for result in ${{ join(needs.*.result, ' ') }}; do [ $result = success ]; done
+39 -14
View File
@@ -6,34 +6,59 @@ on:
pull_request: pull_request:
jobs: jobs:
build: build:
runs-on: ubuntu-latest strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-26.04-arm
- macos-latest
runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with: with:
submodules: true submodules: true
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 - uses: ./.github/actions/setup
- run: cargo build - run: cargo build
test: unit_test:
runs-on: ubuntu-latest strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-26.04-arm
- macos-latest
options:
-
- --no-default-features --features cmake
runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with: with:
submodules: true submodules: true
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 - uses: ./.github/actions/setup
- run: cargo test - run: cargo test ${{ matrix.options }}
examples: examples:
runs-on: ubuntu-latest strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-26.04-arm
- macos-latest
runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with: with:
submodules: true submodules: true
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 - uses: ./.github/actions/setup
- run: tools/example_test.sh - run: tools/example_test.sh
cmake: test:
needs:
- build
- unit_test
- examples
if: always()
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - run: for result in ${{ join(needs.*.result, ' ') }}; do [ $result = success ]; done
with:
submodules: true
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
- run: cargo build --no-default-features --features cmake
+4 -7
View File
@@ -3,6 +3,8 @@
use core::error::Error; use core::error::Error;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
// cspell: ignore reconf
const LIB_ATOMIC_OPS_DIR: &str = "vendor/libatomic_ops"; const LIB_ATOMIC_OPS_DIR: &str = "vendor/libatomic_ops";
const LIB_GC_DIR: &str = "vendor/bdwgc"; const LIB_GC_DIR: &str = "vendor/bdwgc";
@@ -52,14 +54,8 @@ cfg_select! {
} }
feature = "autotools" => { feature = "autotools" => {
fn build_library() -> Result<(), Box<dyn Error>> { fn build_library() -> Result<(), Box<dyn Error>> {
for dir in &[LIB_ATOMIC_OPS_DIR, LIB_GC_DIR] {
std::process::Command::new("sh")
.arg("-c")
.arg(format!("cd {dir} && ./autogen.sh"))
.output()?;
}
let dst = autotools::Config::new(LIB_ATOMIC_OPS_DIR) let dst = autotools::Config::new(LIB_ATOMIC_OPS_DIR)
.reconf("-i")
.cflag("-fPIC") .cflag("-fPIC")
.build(); .build();
@@ -70,6 +66,7 @@ cfg_select! {
println!("cargo:rustc-link-lib=static=atomic_ops"); println!("cargo:rustc-link-lib=static=atomic_ops");
let dst = autotools::Config::new(LIB_GC_DIR) let dst = autotools::Config::new(LIB_GC_DIR)
.reconf("-i")
.cflag(format!( .cflag(format!(
// spell-checker: disable-next-line // spell-checker: disable-next-line
"-I{} -L/lib/x86_64-linux-gnu -lpthread -fPIC", "-I{} -L/lib/x86_64-linux-gnu -lpthread -fPIC",
+1
View File
@@ -10,6 +10,7 @@
"dealloc", "dealloc",
"finalizer", "finalizer",
"gcollect", "gcollect",
"gitsubmodule",
"libatomic", "libatomic",
"libc", "libc",
"libclang", "libclang",