AnalogTapeModel

Physical modelling signal processing for analog tape recording
Log | Files | Refs | Submodules | README | LICENSE

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