Release #4
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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}" |