name: test
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 - run: tools/build.sh
- run: git diff --exit-code
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with:
name: build
path: target/release/turtle
unit_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 - run: cargo test
integration_test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e with:
go-version: stable
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c with:
name: build
path: target/release
- run: chmod +x target/release/turtle
- run: tools/integration_test.sh
integration_test_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e with:
go-version: stable
- uses: raviqqe/enable-homebrew@6bd383659a321c332bd0c0ed445c32d54e04efe8 - run: brew install ninja
- run: mkdir -p target/release
- run: cp tools/turtle.sh target/release/turtle
- run: tools/integration_test.sh -t ~@turtle
test:
needs:
- build
- unit_test
- integration_test
- integration_test_test
if: always()
runs-on: ubuntu-latest
steps:
- run: for result in ${{ join(needs.*.result, ' ') }}; do [ $result = success ]; done