2023-10-23 16:47:32 +08:00
|
|
|
name: Build
|
|
|
|
|
|
|
|
on: [push, pull_request]
|
|
|
|
|
|
|
|
jobs:
|
2024-01-18 10:43:10 +08:00
|
|
|
windows:
|
|
|
|
name: Windows MSYS2
|
|
|
|
strategy:
|
2024-03-01 18:27:15 +08:00
|
|
|
fail-fast: false
|
2024-01-18 10:43:10 +08:00
|
|
|
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
|
2023-10-23 16:47:32 +08:00
|
|
|
runs-on: windows-latest
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: msys2 {0}
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Setup
|
|
|
|
uses: msys2/setup-msys2@v2
|
|
|
|
with:
|
2024-01-18 10:43:10 +08:00
|
|
|
msystem: ${{ matrix.msystem }}
|
2023-10-23 16:47:32 +08:00
|
|
|
update: true
|
2024-01-18 10:43:10 +08:00
|
|
|
install: ${{ matrix.packagePrefix }}-toolchain ${{ matrix.packagePrefix }}-qt5-static
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- 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:
|
2024-01-18 10:43:10 +08:00
|
|
|
name: Windows MSYS2 - msystem=${{ matrix.msystem }}
|
2023-10-23 16:47:32 +08:00
|
|
|
path: pkg/
|
|
|
|
|
2024-01-18 10:43:10 +08:00
|
|
|
windows_legacy:
|
2024-05-17 15:52:36 +08:00
|
|
|
name: Windows NT 5.x
|
2024-01-18 10:43:10 +08:00
|
|
|
strategy:
|
2024-03-01 18:27:15 +08:00
|
|
|
fail-fast: false
|
2024-01-18 10:43:10 +08:00
|
|
|
matrix:
|
2024-05-17 15:52:36 +08:00
|
|
|
profile:
|
|
|
|
- 64-ucrt
|
|
|
|
- 32-ucrt
|
|
|
|
- 64-msvcrt
|
|
|
|
- 32-msvcrt
|
|
|
|
- 32-win2000
|
2024-04-28 16:46:59 +08:00
|
|
|
include:
|
2024-05-17 15:52:36 +08:00
|
|
|
- isUcrt: 0
|
|
|
|
- profile: 64-ucrt
|
|
|
|
isUcrt: 1
|
|
|
|
- profile: 32-ucrt
|
|
|
|
isUcrt: 1
|
2024-01-18 10:43:10 +08:00
|
|
|
runs-on: windows-2019
|
2023-10-23 16:47:32 +08:00
|
|
|
defaults:
|
|
|
|
run:
|
2024-05-17 15:52:36 +08:00
|
|
|
shell: msys2 {0}
|
2024-01-18 10:43:10 +08:00
|
|
|
env:
|
2024-05-17 15:52:36 +08:00
|
|
|
_REDPANDA_QT_BUILD: "5.15.13+redpanda1"
|
|
|
|
_QT_NAME: mingw141_${{ matrix.profile }}
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-10-23 16:47:32 +08:00
|
|
|
|
2024-05-17 15:52:36 +08:00
|
|
|
- name: Setup
|
|
|
|
uses: msys2/setup-msys2@v2
|
|
|
|
with:
|
|
|
|
msystem: UCRT64
|
|
|
|
update: true
|
|
|
|
install: mingw-w64-x86_64-7zip mingw-w64-x86_64-cmake mingw-w64-i686-nsis curl git
|
2023-10-23 16:47:32 +08:00
|
|
|
|
2024-01-18 10:43:10 +08:00
|
|
|
- name: Setup Qt
|
2023-10-23 16:47:32 +08:00
|
|
|
run: |
|
2024-04-28 16:46:59 +08:00
|
|
|
curl -LO https://github.com/redpanda-cpp/qtbase-xp/releases/download/$_REDPANDA_QT_BUILD/$_QT_NAME.7z
|
2024-05-17 15:52:36 +08:00
|
|
|
/mingw64/bin/7z x $_QT_NAME.7z -oC:/Qt
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-05-17 15:52:36 +08:00
|
|
|
./packages/msys/build-xp.sh -p ${{ matrix.profile }} $( [[ ${{ matrix.isUcrt }} -eq 1 ]] && echo --ucrt 22621 )
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
2024-05-17 15:52:36 +08:00
|
|
|
name: Windows NT 5.x - profile=${{ matrix.profile }}
|
|
|
|
path: dist/*
|
2023-10-23 16:47:32 +08:00
|
|
|
|
2023-12-22 18:03:55 +08:00
|
|
|
windows_msvc_x64:
|
|
|
|
name: Windows MSVC x64
|
|
|
|
runs-on: windows-2019
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-12-22 18:03:55 +08:00
|
|
|
|
|
|
|
- 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
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-12-22 18:03:55 +08:00
|
|
|
|
|
|
|
- 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
|
2024-01-18 10:41:40 +08:00
|
|
|
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
|
2023-12-22 18:03:55 +08:00
|
|
|
& $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/
|
|
|
|
|
2024-02-22 10:31:07 +08:00
|
|
|
debian:
|
|
|
|
name: Debian
|
2024-01-18 10:43:10 +08:00
|
|
|
strategy:
|
2024-03-01 18:27:15 +08:00
|
|
|
fail-fast: false
|
2024-01-18 10:43:10 +08:00
|
|
|
matrix:
|
2024-02-22 10:31:07 +08:00
|
|
|
arch: [amd64, i386]
|
2024-03-03 17:49:41 +08:00
|
|
|
version: ["11", "12"]
|
2024-04-27 10:22:53 +08:00
|
|
|
env:
|
|
|
|
IMAGE: docker.io/${{ matrix.arch }}/debian:${{ matrix.version }}
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-04-27 10:22:53 +08:00
|
|
|
podman run --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/debian/01-in-docker.sh
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
2024-02-22 10:31:07 +08:00
|
|
|
name: Debian ${{ matrix.version }} ${{ matrix.arch }}
|
|
|
|
path: dist/*.deb
|
|
|
|
|
|
|
|
ubuntu:
|
|
|
|
name: Ubuntu
|
|
|
|
strategy:
|
2024-03-01 18:27:15 +08:00
|
|
|
fail-fast: false
|
2024-02-22 10:31:07 +08:00
|
|
|
matrix:
|
2024-04-27 10:22:53 +08:00
|
|
|
version: ["22.04", "23.10", "24.04", "devel"]
|
|
|
|
env:
|
|
|
|
IMAGE: docker.io/amd64/ubuntu:${{ matrix.version }}
|
|
|
|
|
2024-02-22 10:31:07 +08:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2024-02-22 10:31:07 +08:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-04-27 10:22:53 +08:00
|
|
|
podman run --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/debian/01-in-docker.sh
|
2024-02-22 10:31:07 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: Ubuntu ${{ matrix.version }} amd64
|
2023-10-23 16:47:32 +08:00
|
|
|
path: dist/*.deb
|
|
|
|
|
|
|
|
archlinux:
|
|
|
|
name: Arch Linux
|
|
|
|
runs-on: ubuntu-latest
|
2024-04-27 10:22:53 +08:00
|
|
|
env:
|
|
|
|
IMAGE: docker.io/amd64/archlinux:latest
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-04-27 10:22:53 +08:00
|
|
|
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/archlinux/01-in-docker.sh
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: Arch Linux
|
|
|
|
path: dist/*.pkg.tar.zst
|
|
|
|
|
2024-04-27 10:22:53 +08:00
|
|
|
fedora:
|
|
|
|
name: Fedora
|
2023-10-24 12:20:32 +08:00
|
|
|
runs-on: ubuntu-latest
|
2024-04-27 10:22:53 +08:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
version: ["latest", "rawhide"]
|
|
|
|
env:
|
|
|
|
IMAGE: docker.io/amd64/fedora:${{ matrix.version }}
|
2023-10-24 12:20:32 +08:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-10-24 12:20:32 +08:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-04-27 10:22:53 +08:00
|
|
|
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/fedora/01-in-docker.sh
|
2023-10-24 12:20:32 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
2024-04-27 10:22:53 +08:00
|
|
|
name: Fedora ${{ matrix.version }} x86_64
|
2023-10-24 12:20:32 +08:00
|
|
|
path: dist/*.rpm
|
|
|
|
|
2024-04-27 10:22:53 +08:00
|
|
|
opensuse:
|
|
|
|
name: openSUSE
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
edition: ["leap", "tumbleweed"]
|
|
|
|
env:
|
|
|
|
IMAGE: docker.io/opensuse/${{ matrix.edition }}:latest
|
2024-03-08 07:01:42 +08:00
|
|
|
|
2024-04-27 10:22:53 +08:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2024-03-08 07:01:42 +08:00
|
|
|
|
2024-04-27 10:22:53 +08:00
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/opensuse/01-in-docker.sh
|
2024-03-08 07:01:42 +08:00
|
|
|
|
2024-04-27 10:22:53 +08:00
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: openSUSE ${{ matrix.edition }} x86_64
|
|
|
|
path: dist/*.rpm
|
2023-10-24 12:20:32 +08:00
|
|
|
|
2023-11-19 08:48:58 +08:00
|
|
|
musl:
|
|
|
|
name: musl-based Linux (latest Alpine)
|
|
|
|
runs-on: ubuntu-latest
|
2024-04-27 10:22:53 +08:00
|
|
|
env:
|
|
|
|
IMAGE: docker.io/amd64/alpine:latest
|
2023-11-19 08:48:58 +08:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-11-19 08:48:58 +08:00
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-05-24 22:47:24 +08:00
|
|
|
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/alpine/01-in-docker.sh
|
2023-11-19 08:48:58 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: musl-based Linux (latest Alpine)
|
|
|
|
path: dist/*.apk
|
|
|
|
|
2024-03-06 17:32:21 +08:00
|
|
|
appimage:
|
|
|
|
name: Linux AppImage
|
|
|
|
runs-on: ubuntu-latest
|
2024-04-27 10:22:53 +08:00
|
|
|
env:
|
|
|
|
IMAGE: quay.io/redpanda-cpp/appimage-builder-x86_64:20240304.0
|
2024-03-06 17:32:21 +08:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
2024-04-27 10:22:53 +08:00
|
|
|
podman run --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/appimage/01-in-docker.sh
|
2024-03-06 17:32:21 +08:00
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: Linux AppImage
|
|
|
|
path: dist/*.AppImage
|
|
|
|
|
|
|
|
static-deb:
|
|
|
|
name: Static Deb
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
packages/debian-static/builddeb.sh
|
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: Static Deb
|
|
|
|
path: dist/*.deb
|
|
|
|
|
2023-10-23 16:47:32 +08:00
|
|
|
macos_x86_64:
|
|
|
|
name: macOS x86_64
|
2024-05-09 16:14:47 +08:00
|
|
|
runs-on: macos-12
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2024-03-04 18:38:09 +08:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- name: Setup
|
2024-01-18 10:43:24 +08:00
|
|
|
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
|
2023-10-23 16:47:32 +08:00
|
|
|
|
|
|
|
- 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
|