RedPanda-CPP/.github/workflows/build.yml

276 lines
7.1 KiB
YAML
Raw Normal View History

2023-10-23 16:47:32 +08:00
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/
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
2023-10-23 16:47:32 +08:00
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Arch Linux
path: dist/*.pkg.tar.zst
2023-10-24 12:20:32 +08:00
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
2023-10-23 16:47:32 +08:00
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