Skip to content

Release

Release #4

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
- 'test-v*'
env:
GO111MODULE: on
jobs:
macos-build:
runs-on: macos-11
timeout-minutes: 60
steps:
- uses: actions/setup-go@v2
with:
go-version: 1.19.x
- uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: recursive
persist-credentials: false
- name: Remove pre-installed Colima and Lima
run: brew uninstall colima lima
- name: Make and install Lima
run: make -C src/lima all install
- name: Install dependencies
# QEMU: required by Lima itself
# bash: required by test-example.sh (OS version of bash is too old)
# coreutils: required by test-example.sh for the "timeout" command
# autoconf: required for building vde
# automake: required for building vde
# TODO: Once https://github.com/actions/runner-images/issues/6817 is
# resolved, remove run lines with "rm /usr/local/bin/*"
run: |
rm /usr/local/bin/2to3-3.*
rm /usr/local/bin/idle3.*
rm /usr/local/bin/pydoc3.*
rm /usr/local/bin/python3.*
rm /usr/local/bin/2to3
rm /usr/local/bin/idle3
rm /usr/local/bin/pydoc3
rm /usr/local/bin/python3
rm /usr/local/bin/python3-config
rm -f /usr/local/lib/libtcl8.6.dylib
rm -f /usr/local/lib/libtk8.6.dylib
brew update
brew install qemu bash coreutils
brew install autoconf automake
brew upgrade
- name: Make and Install VDE
run: |
cd src/vde-2
autoreconf -fis
./configure --prefix=/opt/vde
make
sudo make install
- name: Make and Install vde_vmnet
run: |
cd src/vde_vmnet
make PREFIX=/opt/vde
sudo make PREFIX=/opt/vde install.bin
- name: Make & install socket_vmnet
run: |
cd src/socket_vmnet
sudo make PREFIX=/opt/socket_vmnet install.bin
- name: Create lima-and-qemu tarball
run: |
./bin/lima-and-qemu.pl
mv lima-and-qemu.tar.gz lima-and-qemu.macos.tar.gz
sha512sum lima-and-qemu.macos.tar.gz > lima-and-qemu.macos.tar.gz.sha512sum
- name: Upload MacOS build
uses: actions/upload-artifact@v2
with:
name: lima-and-qemu.macos
path: lima-and-qemu.macos*
if-no-files-found: error
macos-ventura-build:
runs-on: macos-12
timeout-minutes: 60
steps:
- uses: actions/setup-go@v2
with:
go-version: 1.19.x
- uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: recursive
persist-credentials: false
- name: "Switch Xcode version to enable macOS 13 SDK"
# Xcode 14.1 added support for macOS 13 SDK.
# The default version is still 14.0.1, as of November 2022.
# https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md#xcode
run: |
sudo xcode-select --switch /Applications/Xcode_14.2.app
xcrun --show-sdk-version
- name: Install dependencies
# coreutils: required to create a sha 512 sum
run: brew install coreutils
- name: Remove pre-installed Colima and Lima
run: brew uninstall colima lima
- name: Make and install Lima
run: make -C src/lima all install
- name: Create Ventura limactl tarball
working-directory: src/lima
run: |
make _output/bin/limactl
chmod u+w _output/bin/limactl
tar cfz limactl.ventura.tar.gz -C _output/bin limactl
sha512sum limactl.ventura.tar.gz > limactl.ventura.tar.gz.sha512sum
- name: Upload Ventura build
uses: actions/upload-artifact@v2
with:
name: limactl.ventura
path: src/lima/limactl.ventura*
if-no-files-found: error
linux-build:
runs-on: ubuntu-20.04
timeout-minutes: 60
steps:
- uses: actions/setup-go@v2
with:
go-version: 1.19.x
- uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: recursive
persist-credentials: false
- name: Lima install on Linux
run: |
dest="$(pwd)/lima-and-qemu"
echo "dest=${dest}" >> $GITHUB_ENV
make -C src/lima
make -C src/lima install DESTDIR="${dest}" PREFIX="/usr"
- name: Install Linux dependecies
# QEMU: required by Lima itself
env:
QEMU_SHA256SUM: eebc089db3414bbeedf1e464beda0a7515aad30f73261abc246c9b27503a3c96
QEMU_VERSION: 6.1.0
run: |
sudo apt-get update
sudo apt-get install -yq ninja-build
df -h
wget https://download.qemu.org/qemu-${QEMU_VERSION}.tar.xz -O qemu.tar.xz
[ "${QEMU_SHA256SUM}" = "$(sha256sum qemu.tar.xz | head -c 64)" ] || exit 1
mkdir qemu
tar xaf qemu.tar.xz -C qemu --strip-components=1
mkdir qemu/build
cd qemu/build
../configure --prefix="/usr" --disable-vnc --disable-sdl --disable-gtk \
--disable-curses --disable-iconv --disable-gio \
--disable-user --enable-kvm --target-list=x86_64-softmmu
make -j$(nproc)
make install DESTDIR=${{ env.dest }}
- name: Create Linux lima-and-qemu tarball
run: |
bin/appdir-lima-and-qemu.sh "${{ env.dest }}/usr"
mv lima-and-qemu.tar.gz lima-and-qemu.linux.tar.gz
sha512sum lima-and-qemu.linux.tar.gz > lima-and-qemu.linux.tar.gz.sha512sum
- name: Upload Linux build
uses: actions/upload-artifact@v2
with:
name: lima-and-qemu.linux
path: lima-and-qemu.linux*
if-no-files-found: error
release:
runs-on: ubuntu-latest
timeout-minutes: 5
needs:
- macos-build
- macos-ventura-build
- linux-build
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
persist-credentials: false
- name: Download Linux build
uses: actions/download-artifact@v2
with:
name: lima-and-qemu.linux
path: build
- name: Download MacOS build
uses: actions/download-artifact@v2
with:
name: lima-and-qemu.macos
path: build
- name: Download Ventura build
uses: actions/download-artifact@v2
with:
name: limactl.ventura
path: build
- name: "Create release"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
tag="${GITHUB_REF##*/}"
hub release create -a build/lima-and-qemu.linux.tar.gz -a build/lima-and-qemu.linux.tar.gz.sha512sum -a build/lima-and-qemu.macos.tar.gz -a build/lima-and-qemu.macos.tar.gz.sha512sum -a build/limactl.ventura.tar.gz -a build/limactl.ventura.tar.gz.sha512sum -m "${tag}" --draft "${tag}"