Test CI #978
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: Test CI | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 22 * * *' # every day at 22:00 UTC | |
env: | |
rust_toolchain: nightly-2022-08-05 | |
qemu_version: 7.0.0 | |
jobs: | |
unit-test: | |
name: Unit Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.rust_toolchain }} | |
components: rust-src, llvm-tools-preview | |
- name: Run unit test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --no-fail-fast | |
env: | |
CARGO_INCREMENTAL: '0' | |
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort' | |
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort' | |
- name: Cache grcov | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo/bin | |
key: ${{ runner.os }}-grcov | |
- name: Gather coverage data | |
id: coverage | |
uses: actions-rs/[email protected] | |
# FIXME: 'error from lcovParse: Failed to parse string' | |
# - name: Coveralls upload | |
# uses: coverallsapp/github-action@master | |
# with: | |
# github-token: ${{ secrets.GITHUB_TOKEN }} | |
# path-to-lcov: ${{ steps.coverage.outputs.report }} | |
zircon-core-test-libos: | |
name: Zircon Core Test Libos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.rust_toolchain }} | |
components: rust-src, llvm-tools-preview | |
- name: Pull prebuilt images | |
run: make zircon-init | |
- name: Install python dependencies | |
run: pip3 install -r tests/requirements.txt | |
- name: Run fast tests | |
if: github.event_name != 'schedule' | |
run: cd tests && python3 zircon_core_test.py --libos --fast --no-failed | |
- name: Run full tests | |
if: github.event_name == 'schedule' | |
run: cd tests && python3 zircon_core_test.py --libos | |
zircon-core-test: | |
name: Zircon Core Test Baremetal | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.rust_toolchain }} | |
components: rust-src, llvm-tools-preview | |
- name: Pull prebuilt images | |
run: make zircon-init | |
- name: Cache QEMU | |
id: cache-qemu | |
uses: actions/cache@v3 | |
with: | |
path: qemu-${{ env.qemu_version }} | |
key: qemu-${{ env.qemu_version }} | |
- name: Install ninja-build | |
run: sudo apt-get update && sudo apt-get install -y ninja-build | |
- name: Download and Compile QEMU | |
if: steps.cache-qemu.outputs.cache-hit != 'true' | |
run: .github/scripts/make-qemu.sh ${{ env.qemu_version }} | |
- name: Install QEMU | |
run: | | |
cd qemu-${{ env.qemu_version }} && sudo make install | |
qemu-system-x86_64 --version | |
- name: Install python dependencies | |
run: pip3 install -r tests/requirements.txt | |
- name: Run fast tests | |
if: github.event_name != 'schedule' | |
run: cd tests && python3 zircon_core_test.py --fast | |
- name: Run full tests | |
if: github.event_name == 'schedule' | |
run: cd tests && python3 zircon_core_test.py | |
linux-libc-test-libos: | |
name: Linux Libc Test Libos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.rust_toolchain }} | |
components: rust-src, llvm-tools-preview | |
- name: Prepare rootfs | |
run: cargo xtask libos-libc-test | |
- name: Install python dependencies | |
run: pip3 install -r tests/requirements.txt | |
- name: Run fast tests | |
if: github.event_name != 'schedule' | |
run: cd tests && python3 linux_libc_test.py --libos --fast | |
- name: Run full tests | |
if: github.event_name == 'schedule' | |
run: cd tests && python3 linux_libc_test.py --libos | |
linux-libc-test-baremetal: | |
name: Linux Libc Test Baremetal | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86_64, riscv64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.rust_toolchain }} | |
components: rust-src, llvm-tools-preview | |
- name: Cache QEMU | |
id: cache-qemu | |
uses: actions/cache@v3 | |
with: | |
path: qemu-${{ env.qemu_version }} | |
key: qemu-${{ env.qemu_version }} | |
- name: Install ninja-build | |
run: sudo apt-get update && sudo apt-get install -y ninja-build | |
- name: Download and Compile QEMU | |
if: steps.cache-qemu.outputs.cache-hit != 'true' | |
run: .github/scripts/make-qemu.sh ${{ env.qemu_version }} | |
- name: Install QEMU | |
run: | | |
cd qemu-${{ env.qemu_version }} && sudo make install | |
qemu-system-${{ matrix.arch }} --version | |
- name: Prepare rootfs | |
run: cargo libc-test --arch ${{ matrix.arch }} && cargo image --arch ${{ matrix.arch }} | |
- if: matrix.arch == 'riscv64' | |
uses: actions-rs/[email protected] | |
with: | |
crate: cargo-binutils | |
version: latest | |
- name: Install python dependencies | |
run: pip3 install -r tests/requirements.txt | |
- name: Run fast tests | |
if: github.event_name != 'schedule' | |
run: cd tests && python3 linux_libc_test-qemu.py --arch ${{ matrix.arch }} --fast | |
- name: Run full tests | |
if: github.event_name == 'schedule' | |
run: cd tests && python3 linux_libc_test-qemu.py --arch ${{ matrix.arch }} | |
linux-other-test-baremetal: | |
name: Linux Other Test Baremetal | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86_64, riscv64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.rust_toolchain }} | |
components: rust-src, llvm-tools-preview | |
- name: Cache QEMU | |
id: cache-qemu | |
uses: actions/cache@v3 | |
with: | |
path: qemu-${{ env.qemu_version }} | |
key: qemu-${{ env.qemu_version }} | |
- name: Install ninja-build | |
run: sudo apt-get update && sudo apt-get install -y ninja-build | |
- name: Download and Compile QEMU | |
if: steps.cache-qemu.outputs.cache-hit != 'true' | |
run: .github/scripts/make-qemu.sh ${{ env.qemu_version }} | |
- name: Install QEMU | |
run: | | |
cd qemu-${{ env.qemu_version }} && sudo make install | |
qemu-system-${{ matrix.arch }} --version | |
- name: Prepare rootfs | |
run: cargo other-test --arch ${{ matrix.arch }} && cargo image --arch ${{ matrix.arch }} | |
- if: matrix.arch == 'riscv64' | |
uses: actions-rs/[email protected] | |
with: | |
crate: cargo-binutils | |
version: latest | |
- name: Install python dependencies | |
run: pip3 install -r tests/requirements.txt | |
- name: Run fast tests | |
if: github.event_name != 'schedule' | |
run: cd tests && python3 linux_other_test.py --arch ${{ matrix.arch }} --fast | |
- name: Run full tests | |
if: github.event_name == 'schedule' | |
run: cd tests && python3 linux_other_test.py --arch ${{ matrix.arch }} |