Skip to content

Merge pull request #267 from KopiasCsaba/feature/extend_string_compar… #1599

Merge pull request #267 from KopiasCsaba/feature/extend_string_compar…

Merge pull request #267 from KopiasCsaba/feature/extend_string_compar… #1599

Workflow file for this run

on: [push]
env:
ProjectName: Chataigne
PackagesVersion: 1.2.10
jobs:
windows:
name: Windows
# if: false # always skip job
runs-on: windows-2022
strategy:
matrix:
include:
- arch: win-x64
buildFolder: "VisualStudio2022_CI"
installerName: install
- arch: win7-x64
buildFolder: "VisualStudio2022_Win7CI"
installerName: installWin7
fail-fast: false
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Checkout JUCE
uses: actions/checkout@v2
with:
repository: benkuper/JUCE
ref: develop-local
path: JUCE
- name: Set Variables
id: set_variables
uses: ./.github/actions/set-suffix
with:
os: ${{ matrix.arch }}
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: Force 64-bit Linker
shell: powershell
run: |
cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
Get-Content "$env:temp\vcvars.txt" | Foreach-Object { if ($_ -match "^(.*?)=(.*)$") { Set-Content "env:\$($matches[1])" $matches[2] }}
- name: Build
run: msbuild "Builds/${{ matrix.buildFolder }}/${{ env.ProjectName }}.sln" /p:PreferredToolArchitecture=x64 /m /verbosity:normal /p:Configuration=${{ steps.set_variables.outputs.config }}
- name: Create Package
id: create_package
shell: powershell
run: |
Set-Variable -Name "PKGNAME" -Value "${{ env.ProjectName }}-${{ steps.set_variables.outputs.suffix }}"
Invoke-WebRequest "${{ secrets.DEPDIRURL }}${{ env.ProjectName }}-win-x64-${{ steps.set_variables.outputs.dep }}-dependencies.zip" -OutFile ./deps.zip
7z e deps.zip -aoa
&"C:/Program Files (x86)/Inno Setup 6/ISCC.exe" "${{ github.workspace }}/${{ matrix.installerName }}.iss" /O. /F$PKGNAME
echo "pkg-name=$PKGNAME.exe" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append
echo "pdb-name=$PKGNAME.pdb" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append
working-directory: ./Binaries/CI/App
- name: Upload
uses: ./.github/actions/upload
with:
pkg-name: ./Binaries/CI/App/${{ steps.create_package.outputs.pkg-name }}
url: ${{ secrets.UPLOADURL }}
pass: ${{ secrets.UPLOADPASS }}
- name: Rename PDB
if: ${{ steps.set_variables.outputs.config == 'Release' && matrix.arch == 'win-x64' }}
id: rename_pdb
shell: powershell
run: |
Rename-Item -Path "./${{ env.ProjectName }}.pdb" -NewName "${{ steps.create_package.outputs.pdb-name }}"
working-directory: ./Builds/${{ matrix.buildFolder }}/x64/${{ steps.set_variables.outputs.config }}/App
- name: Upload PDB
if: ${{ steps.set_variables.outputs.config == 'Release' && matrix.arch == 'win-x64' }}
uses: ./.github/actions/upload
with:
pkg-name: ./Builds/${{ matrix.buildFolder }}/x64/${{ steps.set_variables.outputs.config }}/App/${{ steps.create_package.outputs.pdb-name }}
url: ${{ secrets.PDBUPLOADURL }}
pass: ${{ secrets.UPLOADPASS }}
osx:
# if: false # tmp disable
name: OSX
runs-on: macos-latest
strategy:
matrix:
include:
- arch: x86_64
suffix: intel
config: Release
- arch: arm64
suffix: silicon
config: ReleaseSilicon
fail-fast: false
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Checkout JUCE
uses: actions/checkout@v2
with:
repository: benkuper/JUCE
ref: develop-local
path: JUCE
- name: Set Suffix
id: set_variables
uses: ./.github/actions/set-suffix
with:
os: 'osx-${{ matrix.suffix }}'
- name: Download Packages
run: |
curl -L -o Packages.dmg 'http://s.sudre.free.fr/Software/files/Packages.dmg'
hdiutil mount Packages.dmg
sudo installer -pkg "/Volumes/Packages ${{ env.PackagesVersion }}/Install Packages.pkg" -target /
hdiutil detach "/Volumes/Packages ${{ env.PackagesVersion }}/"
- name: Setup XCode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.3'
- name: Build
uses: sersoft-gmbh/xcodebuild-action@v2.0.1
with:
project: Builds/MacOSX_CI/${{ env.ProjectName }}.xcodeproj
destination: platform=macOS
jobs: 2
action: build
arch: ${{ matrix.arch }}
configuration: ${{ matrix.config }}
use-xcpretty: true
- name: Create Package
id: create_package
run: |
packagesbuild ${{ env.ProjectName }}.pkgproj
PKGNAME=${{ env.ProjectName }}-${{ steps.set_variables.outputs.suffix }}.pkg
mv ${{ env.ProjectName }}.pkg $PKGNAME
echo "pkg-name=$PKGNAME" >> $GITHUB_OUTPUT
working-directory: ./Package
- name: Upload
uses: ./.github/actions/upload
with:
pkg-name: ./Package/${{ steps.create_package.outputs.pkg-name }}
url: ${{ secrets.UPLOADURL }}
pass: ${{ secrets.UPLOADPASS }}
linux:
# if: false # tmp disable
name: Linux
runs-on: ubuntu-22.04
container: tommagnier/chataigne-linux-x64-build
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Checkout JUCE
uses: actions/checkout@v2
with:
repository: benkuper/JUCE
ref: develop-local
path: JUCE
- name: Set Suffix
id: set_variables
uses: ./.github/actions/set-suffix
with:
os: 'x64'
- name: Installing dependencies
id: install_deps
#shell: bash {0} # Opt out of fail-fast behavior (necessary to ignore fetch errors)
run: |
# Most dependencies are already installed in the Docker image. Uncomment the following lines if you need more
# apt-get update && apt-get install ...
cd $GITHUB_WORKSPACE
wget "https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
# - name: Start SSH via ngrok
# uses: P3TERX/ssh2actions@main
# with:
# mode: ngrok
# env:
# # After sign up on the https://ngrok.com
# # You can find this token here: https://dashboard.ngrok.com/auth/your-authtoken
# NGROK_TOKEN: ${{ secrets.NGROK_TOKEN }}
# # ngrok server region [us, eu, au, ap, sa, jp, in] (optional, default: us)
# # You can find this server region here: https://ngrok.com/docs#global-locations
# NGROK_REGION: us
# # This password you will use when authorizing via SSH
# SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }}
- name: Build
run: |
cd $GITHUB_WORKSPACE/Builds/LinuxMakefile
gcc --version
make -j2 CONFIG=Release
- name: Create AppImage
id: create_package
run: |
mkdir -p ${{ env.ProjectName }}.AppDir/usr/bin/
cp build/${{ env.ProjectName }} ${{ env.ProjectName }}.AppDir/usr/bin/
PKGNAME=${{ env.ProjectName }}-linux-${{ steps.set_variables.outputs.suffix }}.AppImage
echo "pkg-name=$PKGNAME" >> $GITHUB_OUTPUT
$GITHUB_WORKSPACE/appimagetool-x86_64.AppImage --appimage-extract-and-run ${{ env.ProjectName }}.AppDir $PKGNAME
working-directory: ./Builds/LinuxMakefile
- name: Upload
uses: ./.github/actions/upload
with:
pkg-name: ./Builds/LinuxMakefile/${{ steps.create_package.outputs.pkg-name }}
url: ${{ secrets.UPLOADURL }}
pass: ${{ secrets.UPLOADPASS }}
raspberrypi:
# if: false # tmp disable
name: Raspberry Pi
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- arch: armhf
cpu: arm1176 #suitable for all Pi versions
base_image: raspios_lite:2021-05-07
cpu_info: raspberrypi_zero_w
buildFolder: "Raspberry"
buildConfig: "Release"
- arch: aarch64
cpu: cortex-a53
base_image: raspios_lite_arm64:2022-04-04
cpu_info: raspberrypi_zero2_w_arm64_w
buildFolder: "Raspberry64"
buildConfig: "Release"
fail-fast: false
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Checkout JUCE
uses: actions/checkout@v2
with:
repository: benkuper/JUCE
ref: develop-local
path: JUCE
- name: Set Suffix
id: set_variables
uses: ./.github/actions/set-suffix
with:
os: ${{ matrix.arch }}
- name: Download and prepare AppImage
run: |
sudo apt-get update
sudo apt-get install libfuse2 # required on ubuntu 22.04
wget "https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
echo "Downloading AppImage runtime for ${{ matrix.arch }}"
wget "https://github.com/AppImage/AppImageKit/releases/download/13/runtime-${{ matrix.arch }}"
mkdir -p ./Builds/${{ matrix.buildFolder }}/${{ env.ProjectName }}.AppDir/usr/bin/
working-directory: ${{ github.workspace }}
- name: Install dependencies and build
id: build
uses: pguyot/arm-runner-action@v2
with:
image_additional_mb: 2048
base_image: ${{ matrix.base_image }}
cpu: ${{ matrix.cpu }}
copy_artifact_path: Builds/${{ matrix.buildFolder }}/build/${{ env.ProjectName }}
copy_artifact_dest: Builds/${{ matrix.buildFolder }}/${{ env.ProjectName }}.AppDir/usr/bin/
commands: |
apt-get update
echo "Installing JUCE lib dependencies and extra tools"
apt-get install -qyf libcurl3-gnutls libfreetype6-dev libx11-dev libxinerama-dev libxrandr-dev libxcursor-dev libxcomposite-dev mesa-common-dev libasound2-dev freeglut3-dev libcurl4-gnutls-dev libasound2-dev libjack-dev libbluetooth-dev libgtk-3-dev libwebkit2gtk-4.0-dev libsdl2-dev libusb-1.0-0-dev libhidapi-dev ladspa-sdk libssl-dev
apt-get install -qy curl
cd Builds/${{ matrix.buildFolder }}
make -j2 CONFIG=${{ matrix.buildConfig }}
- name: Create AppImage
id: create_package
run: |
PKGNAME=${{ env.ProjectName }}-linux-${{ steps.set_variables.outputs.suffix }}.AppImage
echo "pkg-name=$PKGNAME" >> $GITHUB_OUTPUT
${{ github.workspace }}/appimagetool-x86_64.AppImage --runtime-file ${{ github.workspace }}/runtime-${{ matrix.arch }} ${{ env.ProjectName }}.AppDir $PKGNAME
working-directory: ./Builds/${{ matrix.buildFolder }}
- name: Upload
uses: ./.github/actions/upload
with:
pkg-name: ./Builds/${{ matrix.buildFolder }}/${{ steps.create_package.outputs.pkg-name }}
url: ${{ secrets.UPLOADURL }}
pass: ${{ secrets.UPLOADPASS }}