krata/.github/workflows/nightly.yml
2024-03-21 20:15:09 -07:00

93 lines
2.8 KiB
YAML

name: nightly
on:
workflow_dispatch:
schedule:
- cron: "0 10 * * *"
jobs:
server:
runs-on: ubuntu-latest
strategy:
matrix:
arch:
- x86_64
- aarch64
env:
TARGET_ARCH: "${{ matrix.arch }}"
name: server ${{ matrix.arch }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: "${{ matrix.arch }}-unknown-linux-gnu,${{ matrix.arch }}-unknown-linux-musl"
- run: ./hack/ci/install-linux-deps.sh
- run: ./hack/dist/bundle.sh
env:
KRATA_KERNEL_BUILD_JOBS: "5"
- uses: actions/upload-artifact@v4
with:
name: krata-bundle-systemd-${{ matrix.arch }}
path: "target/dist/bundle-systemd-${{ matrix.arch }}.tgz"
compression-level: 0
- run: ./hack/dist/deb.sh
env:
KRATA_KERNEL_BUILD_SKIP: "1"
- uses: actions/upload-artifact@v4
with:
name: krata-debian-${{ matrix.arch }}
path: "target/dist/*.deb"
compression-level: 0
- run: ./hack/dist/apk.sh
env:
KRATA_KERNEL_BUILD_SKIP: "1"
- uses: actions/upload-artifact@v4
with:
name: krata-alpine-${{ matrix.arch }}
path: "target/dist/*_${{ matrix.arch }}.apk"
compression-level: 0
- run: ./hack/os/build.sh
env:
KRATA_KERNEL_BUILD_SKIP: "1"
- uses: actions/upload-artifact@v4
with:
name: krata-os-${{ matrix.arch }}
path: "target/os/krata-${{ matrix.arch }}.qcow2"
compression-level: 0
client:
strategy:
matrix:
os:
- { name: linux, on: ubuntu-latest }
- { name: darwin, on: macos-14 }
- { name: windows, on: windows-latest }
arch:
- x86_64
- aarch64
exclude:
# aarch64 windows support is not available in downstream dependencies
- os: { name: windows, on: windows-latest }
arch: aarch64
env:
TARGET_OS: "${{ matrix.os.name }}"
TARGET_ARCH: "${{ matrix.arch }}"
runs-on: "${{ matrix.os.on }}"
name: client ${{ matrix.os.name }}-${{ matrix.arch }}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
if: ${{ matrix.os.name != 'darwin' }}
- uses: dtolnay/rust-toolchain@stable
with:
targets: "${{ matrix.arch }}-apple-darwin"
if: ${{ matrix.os.name == 'darwin' }}
- uses: homebrew/actions/setup-homebrew@master
if: ${{ matrix.os.name == 'darwin' }}
- run: ./hack/ci/install-${{ matrix.os.name }}-deps.sh
- run: ./hack/build/cargo.sh build --release --bin kratactl
- uses: actions/upload-artifact@v4
with:
name: kratactl-${{ matrix.os.name }}-${{ matrix.arch }}
path: "target/*/release/kratactl*"