Merge branch 'master' of https://github.com/jsoftware/qtide #245
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: JQtide | |
on: | |
push: | |
branches: | |
- master | |
- main | |
# if: ${{ false }} | |
jobs: | |
# linux ---------------------------------------------------------------- | |
jqtlinux: | |
name: JQtide (Linux) | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# - name: Install Qt from distro | |
# run: script/installqt.sh linux | |
- name: Install Qt from source | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '5.15.2' | |
target: 'desktop' | |
dir: '${{github.workspace}}' | |
# modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Compile JQtide | |
# run: script/makelinux.sh '5.15.2' linux # previous 5.12.8 | |
run: QM=${{github.workspace}}/Qt/5.15.2/gcc_64/bin/qmake script/makelinux.sh '5.15.2' linux | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-linux.tar.gz,jqt-linux-slim.tar.gz,version.txt" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# macOS ---------------------------------------------------------------- | |
jqtmacos: | |
name: JQtide (macOS) | |
runs-on: macos-13 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt from source | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.5.3' | |
target: 'desktop' | |
dir: '${{github.workspace}}' | |
# modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Compile JQtide | |
env: | |
CC: clang | |
run: QM=${{github.workspace}}/Qt/6.5.3/macos/bin/qmake script/makemac.sh '6.5.3' mac | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-mac.zip,jqt-mac-slim.zip" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# rpi64 ---------------------------------------------------------------- | |
jqtrpi64: | |
name: JQtide (Raspberry) | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt, Compile JQtide | |
uses: pguyot/arm-runner-action@v2 | |
with: | |
cpu: cortex-a53 | |
cpu_info: cpuinfo/raspberrypi_zero2_w_arm64 | |
base_image: raspios_lite_arm64:latest | |
image_additional_mb: 2048 | |
copy_artifact_path: output | |
commands: | | |
script/installqt.sh raspberry | |
export CC=clang | |
mkdir -p output | |
script/makelinux.sh '5.15.2' raspberry | |
find output -type d -exec chmod a+rwx {} \; | |
find output -type f -exec chmod a+rw {} \; | |
- name: Transfer JQtide | |
run: | | |
ls output/* | |
mv output/* . | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-raspberry.tar.gz,jqt-raspberry-slim.tar.gz" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# rpi32 ---------------------------------------------------------------- | |
jqtrpi32: | |
name: JQtide (Raspberry-arm32) | |
if: ${{ false }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt, Compile JQtide | |
uses: pguyot/arm-runner-action@v2 | |
with: | |
cpu: arm1176 | |
cpu_info: cpuinfo/raspberrypi_zero2_w | |
base_image: raspbian_lite:2020-02-13 | |
image_additional_mb: 2048 | |
copy_artifact_path: output | |
commands: | | |
export CC=gcc | |
script/installqt.sh raspberry-arm32 | |
script/makelinux.sh '5.15.2' raspberry-arm32 | |
find output -type d -exec chmod a+rwx {} \; | |
find output -type f -exec chmod a+rw {} \; | |
- name: Transfer JQtide | |
run: | | |
ls output/* | |
mv output/* . | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-raspberry-arm32.tar.gz,jqt-raspberry-arm32-slim.tar.gz" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# openbsd -------------------------------------------------------------- | |
jqtopenbsd: | |
name: JQtide (OpenBSD cross-platform-actions) | |
runs-on: macos-13 | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt, Compile JQtide | |
uses: cross-platform-actions/action@v0.23.0 | |
with: | |
operating_system: openbsd | |
architecture: x86-64 | |
version: '7.2' | |
shell: bash | |
run: | | |
rm -f jobdone | |
export IGNORE_OSVERSION=yes | |
sudo pkg_add curl zip gmake | |
sudo rdate time.cloudflare.com || true | |
export CC=clang | |
script/installqt.sh openbsd || exit 1 | |
script/makelinux.sh '5.15.2' openbsd || exit 1 | |
touch jobdone | |
- name: Check Status | |
run: | | |
test -f jobdone || exit 1 | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-openbsd.tar.gz,jqt-openbsd-slim.tar.gz" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# freebsd -------------------------------------------------------------- | |
jqtfreebsd: | |
name: JQtide (FreeBSD vmactions) | |
if: ${{ false }} | |
runs-on: macos-13 | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt, Compile JQtide | |
uses: vmactions/freebsd-vm@v0 | |
with: | |
usesh: true | |
sync: sshfs | |
prepare: | | |
rdate time.cloudflare.com || true | |
pkg install -y curl zip gmake sudo | |
run: | | |
rm -f jobdone | |
pkg install -y curl zip gmake | |
rdate time.cloudflare.com || true | |
export CC=clang | |
script/installqt.sh freebsd || exit 1 | |
script/makelinux.sh '5.15.12' freebsd || exit 1 | |
touch jobdone | |
- name: Check Status | |
run: | | |
test -f jobdone || exit 1 | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-freebsd.tar.gz,jqt-freebsd-slim.tar.gz" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# freebsd -------------------------------------------------------------- | |
jqtfreebsd2: | |
name: JQtide (FreeBSD cross-platform-actions) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt, Compile JQtide | |
uses: cross-platform-actions/action@v0.23.0 | |
with: | |
operating_system: freebsd | |
architecture: x86-64 | |
version: '13.2' | |
shell: bash | |
run: | | |
rm -f jobdone | |
export IGNORE_OSVERSION=yes | |
sudo pkg install -y curl zip gmake | |
sudo rdate time.cloudflare.com || true | |
export CC=clang | |
script/installqt.sh freebsd || exit 1 | |
script/makelinux.sh '5.15.12' freebsd || exit 1 | |
touch jobdone | |
- name: Check Status | |
run: | | |
test -f jobdone || exit 1 | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-freebsd.tar.gz,jqt-freebsd-slim.tar.gz" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# windows -------------------------------------------------------------- | |
jqtwin: | |
name: JQtide (Windows) | |
runs-on: windows-2019 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Environment (Windows) | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: amd64 | |
- name: Install Qt from source | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.5.3' | |
target: 'desktop' | |
arch: 'win64_msvc2019_64' | |
dir: '${{github.workspace}}' | |
# modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Compile JQtide | |
shell: cmd | |
run: script\makewin.cmd 6.5.3 x64 | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-win.zip,jqt-win-slim.zip" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# windows arm64 -------------------------------------------------------- | |
jqtwinarm64: | |
name: JQtide (Windows arm64) | |
runs-on: windows-2022 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Environment (Windows arm64) | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: amd64_arm64 | |
- name: Install Qt from source | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.7.3' | |
target: 'desktop' | |
arch: 'win64_msvc2019_64' | |
dir: '${{github.workspace}}' | |
# modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
# modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Install Qt from source arm64 | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.7.3' | |
target: 'desktop' | |
arch: 'win64_msvc2019_arm64' | |
dir: '${{github.workspace}}' | |
# modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Compile JQtide | |
shell: cmd | |
run: script\makewin.cmd 6.7.3 arm64 | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-winarm64-slim.zip" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# wasm ----------------------------------------------------------------- | |
jqtwasm: | |
name: JQtide (wasm) | |
if: ${{ false }} | |
runs-on: macos-13 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt from source | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.5.3' | |
target: 'desktop' | |
dir: '${{github.workspace}}' | |
# modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
# modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Install Qt from source wasm | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.5.3' | |
target: 'desktop' | |
arch: 'wasm_multithread' | |
dir: '${{github.workspace}}' | |
# modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel' | |
modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Install emsdk | |
uses: mymindstorm/setup-emsdk@v14 | |
with: | |
version: '3.1.32' | |
- name: Verify | |
run: emcc -v | |
- name: Compile JQtide | |
env: | |
CC: clang | |
run: | | |
./cpjlib.sh | |
./cplibjtest.sh | |
JQTSLIM=JQTSLIM QMAKESPEC=wasm-emscripten QM=${{github.workspace}}/Qt/6.5.3/wasm_multithread/bin/qmake ./makeall.sh | |
rm -rf j32 | |
mkdir j32 | |
ls -l bin/wasm-wasm32/release | |
cp bin/wasm-wasm32/release/* j32/. | |
zip -r jqt-wasm-slim.zip j32 | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-wasm-slim.zip" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
# ios ------------------------------------------------------------------ | |
jqtios: | |
name: JQtide (ios) | |
runs-on: macos-13 | |
steps: | |
- name: Check Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Qt from source | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.5.3' | |
target: 'desktop' | |
dir: '${{github.workspace}}' | |
# modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
# modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Install Qt from source ios | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: '6.5.3' | |
target: 'ios' | |
dir: '${{github.workspace}}' | |
# modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
modules: 'all' | |
aqtversion: '==3.1.*' | |
- name: Compile JQtide | |
env: | |
CC: clang | |
run: | | |
cd ~/ | |
wget https://www.jsoftware.com/download/j9.6/install/j9.6_mac64.zip | |
unzip j9.6_mac64.zip | |
find j9.6 -type f -name 'jconsole' -exec chmod 755 {} \; | |
j9.6/bin/jconsole -js "exit 0['install'jpkg'all'['update'jpkg''[load'pacman'" | |
cd - | |
rm -rf jlibrary | |
mkdir -p jlibrary/bin | |
cp -r ~/j9.6/addons jlibrary/. | |
cp -r ~/j9.6/system jlibrary/. | |
cp ~/j9.6/bin/profile.ijs jlibrary/bin/. | |
rm -rf ~/j9.6 | |
rm -rf ~/j9.6-user | |
cd ~/ | |
wget https://github.com/jsoftware/jsource/releases/download/build/m64.zip | |
unzip m64.zip | |
cd - | |
rm -rf ios | |
cp -r ~/j64/ios . | |
rm -rf ~/m64.zip | |
rm -rf ~/j64 | |
mkdir -p ios/mpir | |
cd ios/mpir | |
wget https://www.jsoftware.com/download/jengine/mpir/apple/ios/libgmp.a | |
cd - | |
cd ~/ | |
wget https://github.com/jsoftware/jsource/archive/master.tar.gz | |
tar -xzf master.tar.gz | |
cd - | |
rm -rf test | |
cp -r ~/jsource-master/test . | |
rm -rf ~/jsource-master | |
echo "QMAKE_XCODE_CODE_SIGN_IDENTITY = \"iPhone Developer\"" > ios_signature.pri | |
echo "development_team.name = DEVELOPMENT_TEAM" >> ios_signature.pri | |
echo "development_team.value = bill.w.lam@icloud.com" >> ios_signature.pri | |
echo "QMAKE_MAC_XCODE_SETTINGS += development_team" >> ios_signature.pri | |
QM=${{github.workspace}}/Qt/6.5.3/ios/bin/qmake script/makemac.sh '6.5.3' ios | |
- name: Release JQtide | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: build | |
artifacts: "jqt-ios-slim.zip" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
webhook: | |
name: Run Webhook | |
runs-on: ubuntu-20.04 | |
# 7 jul 2024 - ios/wasm builds fail | |
# needs: [jqtlinux, jqtmacos, jqtrpi64, jqtwin, jqtfreebsd2, jqtopenbsd, jqtios, jqtwasm] | |
needs: [jqtlinux, jqtmacos, jqtrpi64, jqtwin, jqtwinarm64, jqtfreebsd2, jqtopenbsd, jqtios] | |
steps: | |
- name: update server | |
uses: distributhor/workflow-webhook@v2 | |
env: | |
webhook_url: ${{ secrets.WEBHOOK_URL }} | |
webhook_secret: ${{ secrets.WEBHOOK_SECRET }} | |
data: '{ "id": "jqtbuild" }' |