b34b46fa16
* Fix automerge-c tests on mac * Generate significantly smaller automerge-c builds This cuts the size of libautomerge_core.a from 25Mb to 1.6Mb on macOS and 53Mb to 2.7Mb on Linux. As a side-effect of setting codegen-units = 1 for all release builds the optimized wasm files are also 100kb smaller.
177 lines
4.4 KiB
YAML
177 lines
4.4 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
jobs:
|
|
fmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.67.0
|
|
default: true
|
|
components: rustfmt
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/fmt
|
|
shell: bash
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.67.0
|
|
default: true
|
|
components: clippy
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/lint
|
|
shell: bash
|
|
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.67.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- name: Build rust docs
|
|
run: ./scripts/ci/rust-docs
|
|
shell: bash
|
|
- name: Install doxygen
|
|
run: sudo apt-get install -y doxygen
|
|
shell: bash
|
|
|
|
cargo-deny:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
checks:
|
|
- advisories
|
|
- bans licenses sources
|
|
continue-on-error: ${{ matrix.checks == 'advisories' }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: EmbarkStudios/cargo-deny-action@v1
|
|
with:
|
|
arguments: '--manifest-path ./rust/Cargo.toml'
|
|
command: check ${{ matrix.checks }}
|
|
|
|
wasm_tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install wasm-bindgen-cli
|
|
run: cargo install wasm-bindgen-cli wasm-opt
|
|
- name: Install wasm32 target
|
|
run: rustup target add wasm32-unknown-unknown
|
|
- name: run tests
|
|
run: ./scripts/ci/wasm_tests
|
|
deno_tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: denoland/setup-deno@v1
|
|
with:
|
|
deno-version: v1.x
|
|
- name: Install wasm-bindgen-cli
|
|
run: cargo install wasm-bindgen-cli wasm-opt
|
|
- name: Install wasm32 target
|
|
run: rustup target add wasm32-unknown-unknown
|
|
- name: run tests
|
|
run: ./scripts/ci/deno_tests
|
|
|
|
js_fmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: install
|
|
run: yarn global add prettier
|
|
- name: format
|
|
run: prettier -c javascript/.prettierrc javascript
|
|
|
|
js_tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install wasm-bindgen-cli
|
|
run: cargo install wasm-bindgen-cli wasm-opt
|
|
- name: Install wasm32 target
|
|
run: rustup target add wasm32-unknown-unknown
|
|
- name: run tests
|
|
run: ./scripts/ci/js_tests
|
|
|
|
cmake_build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: nightly-2023-01-26
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- name: Install CMocka
|
|
run: sudo apt-get install -y libcmocka-dev
|
|
- name: Install/update CMake
|
|
uses: jwlawson/actions-setup-cmake@v1.12
|
|
with:
|
|
cmake-version: latest
|
|
- name: Install rust-src
|
|
run: rustup component add rust-src
|
|
- name: Build and test C bindings
|
|
run: ./scripts/ci/cmake-build Release Static
|
|
shell: bash
|
|
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
toolchain:
|
|
- 1.67.0
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: ${{ matrix.toolchain }}
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/build-test
|
|
shell: bash
|
|
|
|
macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.67.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/build-test
|
|
shell: bash
|
|
|
|
windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.67.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/build-test
|
|
shell: bash
|