commit 7e1a1d4e0735e012ad32cf336308c0a29bc741ad
parent c6a4616138874a8d77ee95666d1940bdb5b343fb
Author: jatinchowdhury18 <jatinchowdhury18@gmail.com>
Date: Sat, 12 Dec 2020 21:55:56 -0800
Create GitHub Actions workflow (#117)
* Create GitHub Actions workflow
* Update yaml
* Update yaml
* Update yaml
* Update CI
* Update CI
* Update CI
* Update CI
Co-authored-by: jatinchowdhury18 <jatinchowdhury18@users.noreply.github.com>
Diffstat:
A | .github/workflows/ci.yml | | | 81 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
D | .travis.yml | | | 130 | ------------------------------------------------------------------------------- |
2 files changed, 81 insertions(+), 130 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
@@ -0,0 +1,81 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ - develop
+ pull_request:
+ branches:
+ - master
+ - develop
+
+ workflow_dispatch:
+
+env:
+ BUILD_FOLDER:
+
+jobs:
+ build_and_test:
+ if: contains(toJson(github.event.commits), '***NO_CI***') == false && contains(toJson(github.event.commits), '[ci skip]') == false && contains(toJson(github.event.commits), '[skip ci]') == false
+ name: Test module on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false # show all errors for each platform (vs. cancel jobs on error)
+ matrix:
+ os: [ubuntu-latest, macOS-latest]
+
+ steps:
+ - name: Install Linux Deps
+ if: runner.os == 'Linux'
+ run: |
+ sudo apt-get update
+ sudo apt install libasound2-dev libcurl4-openssl-dev libx11-dev libxinerama-dev libxext-dev libfreetype6-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev libjack-jackd2-dev
+ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
+ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
+
+ - name: Checkout code
+ uses: actions/checkout@v2
+ with:
+ submodules: true
+
+ - name: Build Projucer (Linux)
+ if: runner.os == 'Linux'
+ working-directory: ${{github.workspace}}/Plugin/Juce/extras/Projucer/Builds/LinuxMakefile
+ run: make -j4
+
+ - name: Build Projucer (MacOS)
+ if: runner.os == 'MacOS'
+ working-directory: ${{github.workspace}}/Plugin/Juce/extras/Projucer/Builds/MacOSX
+ run: xcodebuild -project Projucer.xcodeproj > /dev/null
+
+ - name: Resave (Linux)
+ if: runner.os == 'Linux'
+ run: |
+ PROJUCER="${{github.workspace}}/Plugin/Juce/extras/Projucer/Builds/LinuxMakefile/build/Projucer"
+ $PROJUCER --set-global-search-path linux defaultJuceModulePath ${{github.workspace}}/Plugin/Juce/modules
+ $PROJUCER --set-global-search-path linux vstLegacyPath ${{github.workspace}}/Plugin/Juce/VST2_SDK
+ $PROJUCER --resave Plugin/CHOWTapeModel.jucer
+
+ - name: Resave (MacOS)
+ if: runner.os == 'MacOS'
+ run: |
+ PROJUCER="${{github.workspace}}/Plugin/JUCE/extras/Projucer/Builds/MacOSX/build/Debug/Projucer.app/Contents/MacOS/Projucer"
+ $PROJUCER --set-global-search-path osx defaultJuceModulePath ${{github.workspace}}/Plugin/Juce/modules
+ $PROJUCER --set-global-search-path osx vstLegacyPath ${{github.workspace}}/Plugin/Juce/VST2_SDK
+ $PROJUCER --resave Plugin/CHOWTapeModel.jucer
+
+ - name: Build (Linux)
+ if: runner.os == 'Linux'
+ working-directory: ${{github.workspace}}/Plugin
+ run: bash build_linux.sh
+
+ - name: Build (MacOS)
+ if: runner.os == 'MacOS'
+ working-directory: ${{github.workspace}}/Plugin/Builds/MacOSX
+ run: |
+ xcodebuild -project CHOWTapeModel.xcodeproj/ clean
+ xcodebuild -project CHOWTapeModel.xcodeproj/ -configuration Release
+
+ # - name: Validate
+ # run: bash validate.sh
diff --git a/.travis.yml b/.travis.yml
@@ -1,130 +0,0 @@
-notifications:
- email: false
-
-language: cpp
-sudo: false
-
-# if pull request: always build
-# if push: only build for master branch
-if: (type != push) OR (type = push AND (branch = master OR branch = develop))
-
-matrix:
- include:
- - name: "linux"
- os: linux
- dist: xenial
- sudo: required
- compiler: gcc
- addons:
- apt:
- packages:
- - libasound2-dev
- - libxcursor-dev
- - libxinerama-dev
- - libxrandr-dev
- - freeglut3-dev
- - libjack-jackd2-dev
- services:
- - xvfb
- env:
- - BUILD_FOLDER="LinuxMakefile"
- - PROJUCER_EXPORT="$TRAVIS_BUILD_DIR/Plugin/Juce/extras/Projucer/Builds/LinuxMakefile/build/Projucer"
- - name: "osx"
- os: osx
- env:
- - BUILD_FOLDER="MacOSX"
- - PROJUCER_EXPORT="$TRAVIS_BUILD_DIR/Plugin/JUCE/extras/Projucer/Builds/MacOSX/build/Debug/Projucer.app/Contents/MacOS/Projucer"
- - secure: VjjlWj4TxFpDrbKDKkhkbsAMZs8sf3QAhD5BcPZAyYkaTmP7RdW77z56c5hpucK01hGNZxLhrlc/0ziNOJqGNwO0tJwR4KYSfZ7xhgljC4NKdTfb5vlBseqvWXNQfIurfYjh2m95/XbAYM+v42i7N+Htf+G/DBmjVgsLGDILt4pV2BojAXVxywrenzlM4khcG8g3Q+TxuaVop5zgT6vmF4F0/HOFRIlOiancDHXHKMeyC9ms6+M/k2FjTW6k96n2JRtI3y7Gzhbs1o3BG+dtN6le3pmSaGmRjqzMuwiC2TZg612tb9FA7+2XdsRavjkKzEHmHvYPrlu7OwwQJ9v2Am6PNn7oPnIk6a8EIUnaj3PXOvE99SdF7xNUN40IR5dqoan0p7hecZGktMeoWkWRnMNGrGRR2X827NnxFTEE2N87djRJ9UT2I4kCfRjqHNePQEl1RVGajLJGiZL2ZiHY7SRYv2apv2e8ovSEZhbQs9euZXhkujCVFtsKep5139WHVXuB+iGDKrYRfkTiAZeRs5aZ4os2C2CHH6rffHZTGXl2e4NW23PEejueXuJof6svVL0Jc50MnVY/F1Hl5Tcp471VOFTM5SXQm3ApL655rdKr07RKIf9YzE3eb1VrHmiL0CH7LxN09Z63/M0s+RlkEvxHlQFsy5Ph66FfuPW24bc=
- - name: "win"
- os: windows
- env:
- - MSBUILD_PATH="c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
- - BUILD_FOLDER="VisualStudio2017"
- - PROJUCER_EXPORT="$TRAVIS_BUILD_DIR/Plugin/JUCE/extras/Projucer/Builds/VisualStudio2017/x64/Debug/App/Projucer.exe"
-
-before_install:
- # mac installs
- - if [[ $TRAVIS_OS_NAME == 'osx' ]]; then gem install xcpretty; fi
- - if [[ $TRAVIS_OS_NAME == 'osx' ]]; then gem install xcpretty-travis-formatter; fi
- # windows setup msbuild path
- - if [[ $TRAVIS_OS_NAME == 'windows' ]]; then export PATH=$MSBUILD_PATH:$PATH; fi
-
- # Build Projucer
- - cd $TRAVIS_BUILD_DIR/Plugin/Juce/extras/Projucer/Builds/$BUILD_FOLDER
- - if [[ $TRAVIS_OS_NAME == 'osx' ]]; then xcodebuild -project Projucer.xcodeproj > /dev/null; fi
- - if [[ $TRAVIS_OS_NAME == 'windows' ]]; then msbuild.exe -v:quiet Projucer.sln; fi
- - if [[ $TRAVIS_OS_NAME == 'linux' ]]; then make; fi
-
-script:
- - cd $TRAVIS_BUILD_DIR/Plugin/
- - export PROJUCER=$PROJUCER_EXPORT
- - $PROJUCER --set-global-search-path $TRAVIS_OS_NAME defaultJuceModulePath $TRAVIS_BUILD_DIR/Plugin/Juce/modules
- - $PROJUCER --set-global-search-path $TRAVIS_OS_NAME vstLegacyPath $TRAVIS_BUILD_DIR/Plugin/Juce/VST2_SDK
- - $PROJUCER --resave CHOWTapeModel.jucer
- - cd $TRAVIS_BUILD_DIR/Plugin/Builds/$BUILD_FOLDER/
-
- - if [[ $TRAVIS_OS_NAME == 'osx' ]]; then xcodebuild -project CHOWTapeModel.xcodeproj/ clean; fi
- - if [[ $TRAVIS_JOB_NAME == 'osx' ]]; then xcodebuild -project CHOWTapeModel.xcodeproj/ -configuration Release | xcpretty -s -f `xcpretty-travis-formatter`; fi
- - if [[ $TRAVIS_JOB_NAME == 'win' ]]; then msbuild.exe -v:normal CHOWTapeModel.sln; fi
- - if [[ $TRAVIS_OS_NAME == 'linux' ]]; then cd ../../ && bash build_linux.sh; fi
-
- # Pluginval
- - |
- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then
- echo "Validating plugin"
- cd $TRAVIS_BUILD_DIR/
- curl -L "https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_macOS.zip" -o pluginval.zip
- unzip pluginval
- pluginval_command="pluginval.app/Contents/MacOS/pluginval --strictness-level 8 --validate-in-process --validate '${TRAVIS_BUILD_DIR}/Plugin/Builds/MacOSX/build/Release/CHOWTapeModel.vst3'"
- max_retry=2
- counter=0
- until $pluginval_command
- do
- sleep 1
- [[ counter -eq $max_retry ]] && echo "Pluginval Failed!" && exit 1
- echo "Running pluginval again. Try #$counter"
- ((counter++))
- done
- # pluginval.app/Contents/MacOS/pluginval --strictness-level 8 --validate-in-process --validate "$TRAVIS_BUILD_DIR/Plugin/Builds/MacOSX/build/Release/CHOWTapeModel.component" || exit 1
- fi
- # - |
- # if [[ $TRAVIS_OS_NAME == 'windows' ]]; then
- # echo "Validating plugin"
- # cd $TRAVIS_BUILD_DIR/
- # choco install pluginval
- # pluginval.exe --strictness-level 8 --validate-in-process --validate "$TRAVIS_BUILD_DIR/Plugin/Builds/VisualStudio2017/x64/Debug/VST3/CHOWTapeModel.vst3"
- # fi
- # - |
- # if [[ $TRAVIS_OS_NAME == 'linux' ]]; then
- # curl -L "https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_Linux.zip" -o pluginval.zip
- # unzip pluginval
- # ./pluginval --strictness-level 6 --validate-in-process --timeout-ms 500000 --validate "$TRAVIS_BUILD_DIR/Plugin/Builds/LinuxMakefile/build/CHOWTapeModel.so" || exit 1
- # fi
-
- - echo "SUCCESS"
-
-# after_success: # upload mac bins
-# - |
-# if [[ $TRAVIS_JOB_NAME == 'osx' && type != push ]]; then
-# echo "Copying Files..."
-# cd $TRAVIS_BUILD_DIR/
-# rm -R Plugin/Bin/Mac/CHOWTapeModel.*
-# cp -R $TRAVIS_BUILD_DIR/Plugin/Builds/MacOSX/build/Release/CHOWTapeModel.app $TRAVIS_BUILD_DIR/Plugin/Bin/Mac/CHOWTapeModel.app
-# cp -R $TRAVIS_BUILD_DIR/Plugin/Builds/MacOSX/build/Release/CHOWTapeModel.component $TRAVIS_BUILD_DIR/Plugin/Bin/Mac/CHOWTapeModel.component
-# cp -R $TRAVIS_BUILD_DIR/Plugin/Builds/MacOSX/build/Release/CHOWTapeModel.vst $TRAVIS_BUILD_DIR/Plugin/Bin/Mac/CHOWTapeModel.vst
-# cp -R $TRAVIS_BUILD_DIR/Plugin/Builds/MacOSX/build/Release/CHOWTapeModel.vst3 $TRAVIS_BUILD_DIR/Plugin/Bin/Mac/CHOWTapeModel.vst3
-
-# zip -r $TRAVIS_BUILD_DIR/Plugin/Bin/MacBuilds.zip $TRAVIS_BUILD_DIR/Plugin/Bin/Mac/
-
-# echo "Setting Up Git..."
-# git config --global user.email "travis@travis-ci.org"
-# git config --global user.name "Travis CI"
-
-# echo "Committing Files..."
-# git checkout -b builds
-# git add $TRAVIS_BUILD_DIR/Plugin/Bin/
-# git commit -m "Travis build- $TRAVIS_BUILD_NUMBER [ci skip]"
-
-# echo "Pushing to branch..."
-# git push https://${GH_TOKEN}@github.com/jatinchowdhury18/AnalogTapeModel.git
-# fi