Skip to content

Bump version to 0.1.1 #2

Bump version to 0.1.1

Bump version to 0.1.1 #2

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v30
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Build ISO
run: nix build .#hypervisor-image -o iso-result
- name: Build binaries
run: nix build .#mvirt -o bin-result
- name: Get version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Prepare release artifacts
run: |
mkdir -p release
VERSION="${{ steps.version.outputs.VERSION }}"
# ISO
cp iso-result/iso/*.iso release/mvirt-hypervisor-${VERSION}.iso
# Binaries
cp bin-result/bin/mvirt release/
cp bin-result/bin/mvirt-vmm release/
cp bin-result/bin/mvirt-zfs release/
cp bin-result/bin/mvirt-net release/
cp bin-result/bin/mvirt-log release/
# Create tarball of binaries
tar -czvf release/mvirt-${VERSION}-linux-x86_64.tar.gz -C bin-result/bin .
- name: Build Debian packages
run: |
sudo apt-get update
sudo apt-get install -y debhelper devscripts
# Copy pre-built Nix binaries to where debian/rules expects them
mkdir -p target/x86_64-unknown-linux-musl/release
cp bin-result/bin/* target/x86_64-unknown-linux-musl/release/
# Update changelog version
VERSION="${{ steps.version.outputs.VERSION }}"
VERSION_NUM="${VERSION#v}"
sed -i "1s/([^)]*)/($VERSION_NUM)/" debian/changelog
# Build .deb packages (skip cargo build since we have Nix binaries)
sed -i 's/cargo build --release --target $(MUSL_TARGET)/echo "Using pre-built Nix binaries"/' debian/rules
sed -i 's/$(MAKE) vmm-deps/echo "Skipping vmm-deps"/' debian/rules
dpkg-buildpackage -us -uc -b
# Move .deb files to release/
mv ../*.deb release/
- name: Create Release
uses: softprops/action-gh-release@v2
with:
name: Release ${{ steps.version.outputs.VERSION }}
draft: false
prerelease: ${{ contains(github.ref, '-rc') || contains(github.ref, '-alpha') || contains(github.ref, '-beta') }}
generate_release_notes: true
files: |
release/mvirt-hypervisor-${{ steps.version.outputs.VERSION }}.iso
release/mvirt-${{ steps.version.outputs.VERSION }}-linux-x86_64.tar.gz
release/mvirt
release/mvirt-vmm
release/mvirt-zfs
release/mvirt-net
release/mvirt-log
release/*.deb