Update CI build #190
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: Build | |
on: [push, pull_request] | |
jobs: | |
windows: | |
name: Windows MSYS2 | |
strategy: | |
fail-fast: false | |
matrix: | |
msystem: [MINGW32, MINGW64, UCRT64, CLANG64] | |
include: | |
- msystem: MINGW32 | |
packagePrefix: mingw-w64-i686 | |
- msystem: MINGW64 | |
packagePrefix: mingw-w64-x86_64 | |
- msystem: UCRT64 | |
packagePrefix: mingw-w64-ucrt-x86_64 | |
- msystem: CLANG64 | |
packagePrefix: mingw-w64-clang-x86_64 | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.msystem }} | |
update: true | |
install: ${{ matrix.packagePrefix }}-toolchain ${{ matrix.packagePrefix }}-qt5-static | |
- name: Build | |
run: | | |
mkdir build && pushd build | |
$MSYSTEM_PREFIX/qt5-static/bin/qmake PREFIX=$GITHUB_WORKSPACE/pkg $GITHUB_WORKSPACE/Red_Panda_CPP.pro | |
mingw32-make -j$(nproc) | |
mingw32-make install | |
popd | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Windows MSYS2 - msystem=${{ matrix.msystem }} | |
path: pkg/ | |
windows_legacy: | |
name: Windows NT 5.1–6.0 MinGW | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [32, 64] | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: bash | |
env: | |
_MINGW_TOOLCHAIN: /c/Qt/Tools/mingw810_${{ matrix.arch }} | |
_QT_INSTALL_PREFIX: /c/Qt/5.6.4/mingw81_${{ matrix.arch }}-redpanda | |
_REDPANDA_QT_BUILD: "20240301.0" | |
_REDPANDA_QT_ARCHIVE: qt5.6.4-mingw81_${{ matrix.arch }}-redpanda.7z | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup toolchain | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: '5.15.2' | |
host: windows | |
target: desktop | |
arch: win${{ matrix.arch }}_mingw81 | |
archives: qtbase | |
tools: tools_mingw,qt.tools.win${{ matrix.arch }}_mingw810 | |
dir: C:/ | |
- name: Setup Qt | |
run: | | |
curl -LO https://github.com/redpanda-cpp/qtbase-5.6/releases/download/$_REDPANDA_QT_BUILD/$_REDPANDA_QT_ARCHIVE | |
7z x $_REDPANDA_QT_ARCHIVE -oC:/Qt | |
- name: Build | |
run: | | |
export PATH="$_QT_INSTALL_PREFIX/bin:$_MINGW_TOOLCHAIN/bin:$PATH" | |
mkdir build && pushd build | |
{ | |
qmake PREFIX=$GITHUB_WORKSPACE/pkg $GITHUB_WORKSPACE/Red_Panda_CPP.pro | |
mingw32-make -j$(nproc) | |
mingw32-make install | |
} | |
popd | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Windows NT 5.1–6.0 MinGW - arch=${{ matrix.arch }} | |
path: pkg/ | |
windows_msvc_x64: | |
name: Windows MSVC x64 | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: '5.15.2' | |
host: windows | |
target: desktop | |
arch: win64_msvc2019_64 | |
archives: qtbase qtsvg qttools | |
tools: tools_qtcreator,qt.tools.qtcreator | |
- name: Build | |
run: | | |
$JOM = "${Env:RUNNER_WORKSPACE}/Qt/Tools/QtCreator/bin/jom/jom.exe" | |
$VS_INSTALL_PATH = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" | |
Import-Module "$VS_INSTALL_PATH\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
Enter-VsDevShell -VsInstallPath "$VS_INSTALL_PATH" -SkipAutomaticLocation -DevCmdArguments -arch=amd64 | |
mkdir build && pushd build | |
qmake PREFIX=${Env:GITHUB_WORKSPACE}/pkg ${Env:GITHUB_WORKSPACE}/Red_Panda_CPP.pro | |
& $JOM "-j${Env:NUMBER_OF_PROCESSORS}" | |
& $JOM install | |
windeployqt ${Env:GITHUB_WORKSPACE}/pkg/RedPandaIDE.exe | |
rm ${Env:GITHUB_WORKSPACE}/pkg/vc_redist.x64.exe | |
popd | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Windows MSVC x64 | |
path: pkg/ | |
windows_msvc_arm64ec: | |
name: Windows MSVC ARM64EC | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: '5.15.2' | |
host: windows | |
target: desktop | |
arch: win64_msvc2019_64 | |
archives: qtbase qtsvg qttools | |
tools: tools_qtcreator,qt.tools.qtcreator | |
- name: Build | |
run: | | |
$JOM = "${Env:RUNNER_WORKSPACE}/Qt/Tools/QtCreator/bin/jom/jom.exe" | |
$VS_INSTALL_PATH = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" | |
Import-Module "$VS_INSTALL_PATH\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
Enter-VsDevShell -VsInstallPath "$VS_INSTALL_PATH" -SkipAutomaticLocation -DevCmdArguments "-arch=arm64 -host_arch=amd64" | |
mkdir build && pushd build | |
qmake QMAKE_CFLAGS="/arm64EC" QMAKE_CXXFLAGS="/arm64EC" QMAKE_LFLAGS="/MACHINE:ARM64EC" QMAKE_LIBFLAGS="/MACHINE:ARM64X" PREFIX=${Env:GITHUB_WORKSPACE}/pkg ${Env:GITHUB_WORKSPACE}/Red_Panda_CPP.pro | |
& $JOM "-j${Env:NUMBER_OF_PROCESSORS}" | |
& $JOM install | |
windeployqt ${Env:GITHUB_WORKSPACE}/pkg/RedPandaIDE.exe | |
rm ${Env:GITHUB_WORKSPACE}/pkg/vc_redist.x64.exe | |
popd | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Windows MSVC ARM64EC (do not use) | |
path: pkg/ | |
debian: | |
name: Debian | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [amd64, i386] | |
version: ["10", "11", "12", sid] | |
include: | |
- arch: amd64 | |
platform: linux/amd64 | |
- arch: i386 | |
platform: linux/386 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch container image | |
run: | | |
podman pull --platform ${{ matrix.platform }} docker.io/${{ matrix.arch }}/debian:${{ matrix.version }} | |
- name: Build | |
run: | | |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 debian:${{ matrix.version }} /src/packages/debian/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Debian ${{ matrix.version }} ${{ matrix.arch }} | |
path: dist/*.deb | |
ubuntu: | |
name: Ubuntu | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ["20.04", "22.04", "23.10", "devel"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch container image | |
run: | | |
podman pull --platform linux/amd64 docker.io/amd64/ubuntu:${{ matrix.version }} | |
- name: Build | |
run: | | |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 ubuntu:${{ matrix.version }} /src/packages/debian/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Ubuntu ${{ matrix.version }} amd64 | |
path: dist/*.deb | |
archlinux: | |
name: Arch Linux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch container image | |
run: | | |
podman pull --platform linux/amd64 docker.io/amd64/archlinux:latest | |
- name: Build | |
run: | | |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/archlinux:latest /src/packages/archlinux/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Arch Linux | |
path: dist/*.pkg.tar.zst | |
rpm_fedora: | |
name: RPM on latest Fedora | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch container image | |
run: | | |
podman pull --platform linux/amd64 docker.io/amd64/fedora:latest | |
- name: Build | |
run: | | |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/fedora:latest /src/packages/fedora/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: RPM on latest Fedora | |
path: dist/*.rpm | |
rpm_opensuse: | |
name: RPM on openSUSE Tumbleweed | |
runs-on: ubuntu-latest | |
if: false | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch container image | |
run: | | |
podman pull --platform linux/amd64 docker.io/opensuse/tumbleweed:latest | |
- name: Build | |
run: | | |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/opensuse/tumbleweed:latest /src/packages/opensuse/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: RPM on openSUSE Tumbleweed | |
path: dist/*.rpm | |
musl: | |
name: musl-based Linux (latest Alpine) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch container image | |
run: | | |
podman pull --platform linux/amd64 docker.io/amd64/alpine:latest | |
- name: Build | |
run: | | |
podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/alpine:latest /src/packages/alpine/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: musl-based Linux (latest Alpine) | |
path: dist/*.apk | |
macos_x86_64: | |
name: macOS x86_64 | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: '5.15.2' | |
host: mac | |
target: desktop | |
arch: clang_64 | |
archives: qtbase qtsvg qttools | |
tools: tools_qtcreator,qt.tools.qtcreator | |
- name: Build | |
run: | | |
mkdir build && pushd build | |
qmake PREFIX=$GITHUB_WORKSPACE/pkg $GITHUB_WORKSPACE/Red_Panda_CPP.pro | |
make -j$(nproc) | |
make install | |
popd | |
pushd $GITHUB_WORKSPACE/pkg/bin | |
macdeployqt RedPandaIDE.app | |
tar -cJf RedPandaIDE.tar.xz RedPandaIDE.app | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: macOS x86_64 | |
path: pkg/bin/RedPandaIDE.tar.xz |