- fix: Drag&Drop folder to IDE should be prohibited. #796
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: | |
- isUcrt: false | |
- msystem: MINGW32 | |
packagePrefix: mingw-w64-i686 | |
_7zPackagePrefix: mingw-w64-x86_64 | |
- msystem: MINGW64 | |
packagePrefix: mingw-w64-x86_64 | |
_7zPackagePrefix: mingw-w64-x86_64 | |
- msystem: UCRT64 | |
isUcrt: true | |
packagePrefix: mingw-w64-ucrt-x86_64 | |
_7zPackagePrefix: mingw-w64-ucrt-x86_64 | |
- msystem: CLANG64 | |
isUcrt: true | |
packagePrefix: mingw-w64-clang-x86_64 | |
_7zPackagePrefix: mingw-w64-clang-x86_64 | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.msystem }} | |
update: true | |
install: | | |
${{ matrix.packagePrefix }}-cc | |
${{ matrix.packagePrefix }}-make | |
${{ matrix.packagePrefix }}-qt5-static | |
${{ matrix.packagePrefix }}-cmake | |
mingw-w64-i686-nsis | |
${{ matrix._7zPackagePrefix }}-7zip | |
git | |
- name: Download MinGW toolchain | |
run: | | |
mkdir -p assets | |
curl -L https://github.com/redpanda-cpp/toolchain-win32-mingw-xp/releases/download/11.4.0-r0/mingw32-11.4.0-r0.7z -o assets/mingw32.7z | |
curl -L https://github.com/redpanda-cpp/toolchain-win32-mingw-xp/releases/download/11.4.0-r0/mingw64-11.4.0-r0.7z -o assets/mingw64.7z | |
- name: Build | |
run: | | |
./packages/msys/build-mingw.sh \ | |
$( [[ ${{ matrix.isUcrt }} -eq 1 ]] && echo --ucrt 22621 ) | |
./packages/msys/build-mingw.sh --mingw \ | |
$( [[ ${{ matrix.isUcrt }} -eq 1 ]] && echo --ucrt 22621 ) | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Windows MSYS2 - msystem=${{ matrix.msystem }} | |
path: dist/ | |
windows_legacy_native: | |
name: Windows NT 5.x native | |
strategy: | |
fail-fast: false | |
matrix: | |
profile: | |
- 64-ucrt | |
- 32-ucrt | |
- 64-msvcrt | |
- 32-msvcrt | |
include: | |
- isUcrt: 0 | |
- profile: 64-ucrt | |
isUcrt: 1 | |
- profile: 32-ucrt | |
isUcrt: 1 | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
- name: Build | |
run: | | |
./packages/msys/build-xp.sh -p ${{ matrix.profile }} \ | |
$( [[ ${{ matrix.isUcrt }} -eq 1 ]] && echo --ucrt 22621 ) | |
./packages/msys/build-xp.sh -p ${{ matrix.profile }} --mingw \ | |
$( [[ ${{ matrix.isUcrt }} -eq 1 ]] && echo --ucrt 22621 ) | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Windows NT 5.x native - profile=${{ matrix.profile }} | |
path: dist/* | |
windows_legacy_cross: | |
name: Windows NT 5.x cross | |
strategy: | |
fail-fast: false | |
matrix: | |
profile: | |
- 64-msvcrt | |
- 32-msvcrt | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
sudo ./packages/xmingw/build-xp.sh -p ${{ matrix.profile }} | |
sudo ./packages/xmingw/build-xp.sh -p ${{ matrix.profile }} --mingw | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Windows NT 5.x cross - profile=${{ matrix.profile }} | |
path: dist/* | |
windows_msvc_x64: | |
name: Windows MSVC x64 | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- 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@v4 | |
with: | |
name: Windows MSVC x64 | |
path: pkg/ | |
windows_msvc_arm64ec: | |
name: Windows MSVC ARM64EC | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- 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@v4 | |
with: | |
name: Windows MSVC ARM64EC (do not use) | |
path: pkg/ | |
debian: | |
name: Debian | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [amd64, i386] | |
version: ["11", "12"] | |
env: | |
IMAGE: docker.io/${{ matrix.arch }}/debian:${{ matrix.version }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/debian/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Debian ${{ matrix.version }} ${{ matrix.arch }} | |
path: dist/*.deb | |
ubuntu: | |
name: Ubuntu | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ["22.04", "24.04", "24.10", "devel"] | |
env: | |
IMAGE: docker.io/amd64/ubuntu:${{ matrix.version }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/debian/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ubuntu ${{ matrix.version }} amd64 | |
path: dist/*.deb | |
archlinux: | |
name: Arch Linux | |
runs-on: ubuntu-latest | |
env: | |
IMAGE: docker.io/amd64/archlinux:latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/archlinux/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Arch Linux | |
path: dist/*.pkg.tar.zst | |
fedora: | |
name: Fedora | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ["latest", "rawhide"] | |
env: | |
IMAGE: docker.io/amd64/fedora:${{ matrix.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/fedora/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Fedora ${{ matrix.version }} x86_64 | |
path: dist/*.rpm | |
opensuse: | |
name: openSUSE | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
edition: ["leap", "tumbleweed"] | |
env: | |
IMAGE: docker.io/opensuse/${{ matrix.edition }}:latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/opensuse/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openSUSE ${{ matrix.edition }} x86_64 | |
path: dist/*.rpm | |
musl: | |
name: musl-based Linux (latest Alpine) | |
runs-on: ubuntu-latest | |
env: | |
IMAGE: docker.io/amd64/alpine:latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --security-opt seccomp=unconfined --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/alpine/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: musl-based Linux (latest Alpine) | |
path: dist/*.apk | |
appimage: | |
name: Linux AppImage | |
runs-on: ubuntu-latest | |
env: | |
IMAGE: quay.io/redpanda-cpp/appimage-builder-x86_64:20240610.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
podman run --rm -v $PWD:/mnt -w /mnt $IMAGE ./packages/appimage/01-in-docker.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Linux AppImage | |
path: dist/*.AppImage | |
static-deb: | |
name: Static Deb | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build | |
run: | | |
packages/debian-static/builddeb.sh | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Static Deb | |
path: dist/*.deb | |
macos: | |
name: macOS | |
strategy: | |
fail-fast: false | |
matrix: | |
qtVersion: ['5.15.2', '6.8.0'] | |
arch: [x86_64, arm64, universal] | |
exclude: | |
- { qtVersion: '5.15.2', arch: arm64 } | |
- { qtVersion: '5.15.2', arch: universal } | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: ${{ matrix.qtVersion }} | |
host: mac | |
target: desktop | |
arch: clang_64 | |
archives: qtbase qtsvg qttools qttranslations | |
- name: Build | |
run: | | |
./packages/macos/build.sh \ | |
--arch ${{ matrix.arch }} \ | |
--qt-install-dir $RUNNER_WORKSPACE/Qt \ | |
--qt-version ${{ matrix.qtVersion }} | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macOS Qt ${{ matrix.qtVersion }} ${{ matrix.arch }} | |
path: dist/*.tar.xz |