name: release-binaries permissions: contents: write on: release: types: - published env: CARGO_INCREMENTAL: 0 CARGO_NET_GIT_FETCH_WITH_CLI: true CARGO_NET_RETRY: 10 CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 RUSTUP_MAX_RETRIES: 10 jobs: server: runs-on: ubuntu-latest strategy: fail-fast: false matrix: arch: - x86_64 - aarch64 env: TARGET_ARCH: "${{ matrix.arch }}" name: release-binaries server ${{ matrix.arch }} steps: - uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 with: egress-policy: audit - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d388a4836fcdbde0e50e395dc79a2670ccdef13f # 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 - run: "./hack/ci/assemble-release-assets.sh bundle-systemd ${{ github.event.release.tag_name }} ${{ matrix.arch }} target/dist/bundle-systemd-${{ matrix.arch }}.tgz" - run: ./hack/dist/deb.sh - run: "./hack/ci/assemble-release-assets.sh debian ${{ github.event.release.tag_name }} ${{ matrix.arch }} target/dist/*.deb" - run: ./hack/dist/apk.sh - run: "./hack/ci/assemble-release-assets.sh alpine ${{ github.event.release.tag_name }} ${{ matrix.arch }} target/dist/*_${{ matrix.arch }}.apk" - run: ./hack/os/build.sh - run: "./hack/ci/assemble-release-assets.sh os ${{ github.event.release.tag_name }} ${{ matrix.arch }} target/os/krata-${{ matrix.arch }}.qcow2" - run: "./hack/ci/upload-release-assets.sh ${{ github.event.release.tag_name }}" env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" client: strategy: fail-fast: false matrix: platform: - { os: linux, arch: x86_64, on: ubuntu-latest, deps: linux } - { os: linux, arch: aarch64, on: ubuntu-latest, deps: linux } - { os: darwin, arch: x86_64, on: macos-14, deps: darwin } - { os: darwin, arch: aarch64, on: macos-14, deps: darwin } - { os: freebsd, arch: x86_64, on: ubuntu-latest, deps: linux } - { os: windows, arch: x86_64, on: windows-latest, deps: windows } env: TARGET_OS: "${{ matrix.platform.os }}" TARGET_ARCH: "${{ matrix.platform.arch }}" runs-on: "${{ matrix.platform.on }}" name: release-binaries client ${{ matrix.platform.os }}-${{ matrix.platform.arch }} defaults: run: shell: bash timeout-minutes: 60 steps: - uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 with: egress-policy: audit - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d388a4836fcdbde0e50e395dc79a2670ccdef13f # stable if: ${{ matrix.platform.os != 'darwin' }} - uses: dtolnay/rust-toolchain@stable with: targets: "${{ matrix.platform.arch }}-apple-darwin" if: ${{ matrix.platform.os == 'darwin' }} - uses: homebrew/actions/setup-homebrew@4b34604e75af8f8b23b454f0b5ffb7c5d8ce0056 # master if: ${{ matrix.platform.os == 'darwin' }} - run: ./hack/ci/install-${{ matrix.platform.deps }}-deps.sh - run: ./hack/build/cargo.sh build --release --bin kratactl - run: "./hack/ci/assemble-release-assets.sh kratactl ${{ github.event.release.tag_name }} ${{ matrix.platform.os }}-${{ matrix.platform.arch }} target/*/release/kratactl" if: ${{ matrix.platform.os != 'windows' }} - run: "./hack/ci/assemble-release-assets.sh kratactl ${{ github.event.release.tag_name }} ${{ matrix.platform.os }}-${{ matrix.platform.arch }} target/*/release/kratactl.exe" if: ${{ matrix.platform.os == 'windows' }} - run: "./hack/ci/upload-release-assets.sh ${{ github.event.release.tag_name }}" env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"