123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- name: aya-ci
- on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
- env:
- CARGO_TERM_COLOR: always
- jobs:
- lint:
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v3
- - uses: dtolnay/rust-toolchain@master
- with:
- toolchain: nightly
- components: rustfmt, clippy, miri, rust-src
- - uses: Swatinem/rust-cache@v2
- - run: cargo install taplo-cli
- - run: taplo fmt --check
- - name: Check formatting
- run: cargo fmt --all -- --check
- - uses: taiki-e/install-action@cargo-hack
- - name: Run clippy
- run: cargo hack clippy --all-targets --feature-powerset --workspace -- --deny warnings
- - name: Run miri
- run: |
- cargo hack miri test --all-targets --feature-powerset \
- --exclude aya-bpf \
- --exclude aya-bpf-bindings \
- --exclude aya-log-ebpf \
- --exclude integration-ebpf \
- --exclude integration-test \
- --workspace
- build-test-aya:
- needs: ["lint"]
- strategy:
- fail-fast: false
- matrix:
- arch:
- - x86_64-unknown-linux-gnu
- - aarch64-unknown-linux-gnu
- - armv7-unknown-linux-gnueabi
- - riscv64gc-unknown-linux-gnu
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v3
- - uses: dtolnay/rust-toolchain@master
- with:
- toolchain: stable
- targets: ${{ matrix.arch }}
- - uses: Swatinem/rust-cache@v2
- - uses: taiki-e/install-action@cargo-hack
- - uses: taiki-e/setup-cross-toolchain-action@v1
- with:
- target: ${{ matrix.arch }}
- - name: Build
- run: |
- cargo hack build --all-targets --feature-powerset \
- --exclude aya-bpf \
- --exclude aya-bpf-bindings \
- --exclude aya-log-ebpf \
- --exclude integration-ebpf \
- --workspace
- - name: Test
- env:
- RUST_BACKTRACE: full
- run: |
- cargo hack test --all-targets --feature-powerset \
- --exclude aya-bpf \
- --exclude aya-bpf-bindings \
- --exclude aya-log-ebpf \
- --exclude integration-ebpf \
- --exclude integration-test \
- --workspace
- build-test-aya-bpf:
- needs: ["lint"]
- strategy:
- fail-fast: false
- matrix:
- arch:
- - x86_64
- - aarch64
- - arm
- - riscv64
- target:
- - bpfel-unknown-none
- - bpfeb-unknown-none
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v3
- - uses: dtolnay/rust-toolchain@master
- with:
- toolchain: nightly
- components: rust-src
- - uses: Swatinem/rust-cache@v2
- - name: Prereqs
- run: cargo install bpf-linker --git https://github.com/aya-rs/bpf-linker.git
- - uses: taiki-e/install-action@cargo-hack
- - name: Build
- env:
- CARGO_CFG_BPF_TARGET_ARCH: ${{ matrix.arch }}
- run: |
- cargo hack build --package aya-bpf --package aya-log-ebpf \
- --feature-powerset \
- --target ${{ matrix.target }} \
- -Z build-std=core
- integration-test:
- runs-on: macos-latest
- needs: ["lint", "build-test-aya", "build-test-aya-bpf"]
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: recursive
- - name: Install Pre-requisites
- run: |
- brew install qemu gnu-getopt coreutils cdrtools
- - name: Cache tmp files
- uses: actions/cache@v3
- with:
- path: |
- .tmp/*.qcow2
- .tmp/test_rsa
- .tmp/test_rsa.pub
- # FIXME: we should invalidate the cache on new bpf-linker releases.
- # For now we must manually delete the cache when we release a new
- # bpf-linker version.
- key: tmp-files-${{ hashFiles('test/run.sh') }}
- - name: Run integration tests
- run: test/run.sh
- # Provides a single status check for the entire build workflow.
- # This is used for merge automation, like Mergify, since GH actions
- # has no concept of "when all status checks pass".
- # https://docs.mergify.com/conditions/#validating-all-status-checks
- build-workflow-complete:
- needs: ["lint", "build-test-aya", "build-test-aya-bpf", "integration-test"]
- runs-on: ubuntu-latest
- steps:
- - name: Build Complete
- run: echo "Build Complete"
|