name: Build on: [push, pull_request] jobs: windows_mingw64: name: Windows MSYS2 MINGW64 runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v2 - name: Setup uses: msys2/setup-msys2@v2 with: msystem: MINGW64 update: true install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-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 MINGW64 path: pkg/ windows_ucrt64: name: Windows MSYS2 UCRT64 runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v2 - name: Setup uses: msys2/setup-msys2@v2 with: msystem: UCRT64 update: true install: mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-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 UCRT64 path: pkg/ windows_mingw32: name: Windows MSYS2 MINGW32 runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v2 - name: Setup uses: msys2/setup-msys2@v2 with: msystem: MINGW32 update: true install: mingw-w64-i686-toolchain mingw-w64-i686-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 MINGW32 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_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/ deb_oldest_lts: name: Deb on oldest LTS (Debian 10) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Fetch container image run: | podman pull --platform linux/amd64 docker.io/amd64/debian:10 - name: Build run: | podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/debian:10 /src/packages/debian/01-in-docker.sh - name: Upload uses: actions/upload-artifact@v2 with: name: Deb on oldest LTS (Debian 10) path: dist/*.deb deb_lastest_stable: name: Deb on lastest stable (Ubuntu 23.10) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Fetch container image run: | podman pull --platform linux/amd64 docker.io/amd64/ubuntu:23.10 - name: Build run: | podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/ubuntu:23.10 /src/packages/debian/01-in-docker.sh - name: Upload uses: actions/upload-artifact@v2 with: name: Deb on lastest stable (Ubuntu 23.10) path: dist/*.deb deb_rolling: name: Deb on rolling (Debian sid) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Fetch container image run: | podman pull --platform linux/amd64 docker.io/amd64/debian:sid - name: Build run: | podman run --rm -e SOURCE_DIR=/src -v $GITHUB_WORKSPACE:/src --platform linux/amd64 docker.io/amd64/debian:sid /src/packages/debian/01-in-docker.sh - name: Upload uses: actions/upload-artifact@v2 with: name: Deb on rolling (Debian sid) 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 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 run: | brew install qt@5 - name: Build run: | export PATH="/usr/local/opt/qt@5/bin:$PATH" 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