Skip to content

clear on restart

clear on restart #242

Workflow file for this run

on: [push]
env:
ProjectName: BenTo
PackagesVersion: 1.2.10
jobs:
windows:
name: Windows
#if: false # always skip job (heap space needs fix)
runs-on: windows-2019
strategy:
matrix:
include:
- arch: win-x64
buildFolder: "VisualStudio2019_CI"
installerName: install
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/[email protected]
- name: Force 64-bit Linker
shell: powershell
run: |
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\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 "::set-output name=pkg-name::$PKGNAME.exe"
echo "::set-output name=pdb-name::$PKGNAME.pdb"
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: false #force no upload for Bento right now
#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
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'
- 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: Build
uses: sersoft-gmbh/[email protected]
with:
project: Builds/MacOSX_CI/${{ env.ProjectName }}.xcodeproj
destination: platform=macOS
jobs: 2
action: build
configuration: Release
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 "::set-output name=pkg-name::$PKGNAME"
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-18.04
strategy:
matrix:
include:
- arch: linux-x64
buildFolder: "LinuxMakefile"
- arch: linux-armhf
buildFolder: "Raspberry"
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: Installing dependencies
id: install_deps
#shell: bash {0} # Opt out of fail-fast behavior (necessary to ignore fetch errors)
run: |
echo "Target system architecture: ${{ matrix.arch }}"
if [ "${{ matrix.arch }}" == "linux-armhf" ];
then
sudo tee /etc/apt/sources.list << END
deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse
deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse
deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
END
sudo dpkg --add-architecture armhf
sudo apt-get update
echo "Installing armhf cross compilation tools"
sudo apt-get install -qy g++-arm-linux-gnueabihf
echo "Installing extra lib dependencies"
sudo apt-get install -qyf libgdk-pixbuf2.0-dev:armhf libpango1.0-dev:armhf libsoup2.4-dev:armhf libharfbuzz-dev:armhf libxml2-dev:armhf libicu-dev:armhf libc6-dev:armhf libxft-dev:armhf
echo "Downloading AppImage runtime for armhf"
cd ${{ github.workspace }}
wget "https://github.com/AppImage/AppImageKit/releases/download/12/runtime-armhf"
echo "::set-output name=appImageRuntime::--runtime-file ${{ github.workspace }}/runtime-armhf"
# DEP_ARCH is used later when downloading the dependencies
DEP_ARCH="armhf"
fi
sudo apt-get update
echo "Installing JUCE lib dependencies and extra tools"
sudo apt-get install -qyf libfreetype6-dev:$DEP_ARCH libx11-dev:$DEP_ARCH libxinerama-dev:$DEP_ARCH libxrandr-dev:$DEP_ARCH libxcursor-dev:$DEP_ARCH libxcomposite-dev:$DEP_ARCH mesa-common-dev:$DEP_ARCH libasound2-dev:$DEP_ARCH freeglut3-dev:$DEP_ARCH libcurl4-gnutls-dev:$DEP_ARCH libasound2-dev:$DEP_ARCH libjack-dev:$DEP_ARCH libbluetooth-dev:$DEP_ARCH libgtk-3-dev:$DEP_ARCH libwebkit2gtk-4.0-dev:$DEP_ARCH libsdl2-dev:$DEP_ARCH libfuse2:$DEP_ARCH libusb-1.0-0-dev:$DEP_ARCH libhidapi-dev:$DEP_ARCH
sudo apt-get install -qy curl
cd ${{ github.workspace }}
wget "https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
- name: Build
run: |
if [ "${{ matrix.arch }}" == "linux-armhf" ];
then
export CXX=arm-linux-gnueabihf-g++
export CC=arm-linux-gnueabihf-gcc
export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig
export TARGET_ARCH="-march=armv8-a" # TARGET_ARCH is used in the Makefile
fi
cd ${{ github.workspace }}/Builds/${{ matrix.buildFolder }}
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 }}-${{ steps.set_variables.outputs.suffix }}.AppImage
echo "::set-output name=pkg-name::$PKGNAME"
${{ github.workspace }}/appimagetool-x86_64.AppImage ${{ steps.install_deps.outputs.appImageRuntime }} ${{ 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 }}