cicd: separate sanitize workflow + manual trigger for build workflow

This commit is contained in:
Andrew Hlynskyi 2023-04-08 01:47:57 +03:00
parent 978a2db239
commit bb122d6d47
3 changed files with 47 additions and 32 deletions

View file

@ -46,6 +46,11 @@ jobs:
with:
package: tree-sitter-cli
sanitize:
name: Sanitize
needs: [init, fast_checks]
uses: ./.github/workflows/sanitize.yml
build:
name: Build & Test
needs: [init, fast_checks]
@ -55,7 +60,7 @@ jobs:
release:
name: Release
needs: [init, fast_checks, full_checks, min_version, build]
needs: [init, fast_checks, full_checks, min_version, build, sanitize]
if: >
github.event.pull_request.head.repo.full_name == github.repository &&
startsWith(github.head_ref, 'release/v')

View file

@ -6,6 +6,7 @@ env:
CROSS_DEBUG: 1
on:
workflow_dispatch:
workflow_call:
inputs:
ref:
@ -174,34 +175,3 @@ jobs:
lib/binding_web/tree-sitter.wasm
if-no-files-found: error
retention-days: 7
check_undefined_behaviour:
name: Undefined behaviour checks
runs-on: ubuntu-latest
env:
TREE_SITTER: ${{ github.workspace }}/target/release/tree-sitter
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install UBSAN library
run: sudo apt-get install -y libubsan1
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Build CLI
run: cargo build --release
- name: Fetch fixtures
run: script/fetch-fixtures
- name: Generate fixtures
run: script/generate-fixtures
- name: Run main tests with undefined behaviour sanitizer (UBSAN)
env:
UBSAN_OPTIONS: halt_on_error=1
CFLAGS: -fsanitize=undefined
RUSTFLAGS: -lubsan
run: cargo test -- --test-threads 1

40
.github/workflows/sanitize.yml vendored Normal file
View file

@ -0,0 +1,40 @@
name: Sunitize
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
on:
workflow_call:
jobs:
check_undefined_behaviour:
name: Undefined behaviour checks
runs-on: ubuntu-latest
env:
TREE_SITTER: ${{ github.workspace }}/target/release/tree-sitter
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install UBSAN library
run: sudo apt-get install -y libubsan1
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Build CLI
run: cargo build --release
- name: Fetch fixtures
run: script/fetch-fixtures
- name: Generate fixtures
run: script/generate-fixtures
- name: Run main tests with undefined behaviour sanitizer (UBSAN)
env:
UBSAN_OPTIONS: halt_on_error=1
CFLAGS: -fsanitize=undefined
RUSTFLAGS: -lubsan
run: cargo test -- --test-threads 1