name: Build on: push: branches: - "master" jobs: buildlinux: name: Linux x64 runs-on: ubuntu-18.04 steps: - name: Prepare Environment run: | sudo apt-get install libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-randr0 - name: Prepare Qt Libraries uses: jurplel/install-qt-action@v2 - name: Clone uses: actions/checkout@v2 - name: Compile run: | qmake CONFIG+=release PREFIX=/usr SavvyCAN.pro make -j`grep -c ^processor /proc/cpuinfo` - name: Package run: | make INSTALL_ROOT=appdir install wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/5/linuxdeployqt-5-x86_64.AppImage" chmod a+x linuxdeployqt-5-x86_64.AppImage ./linuxdeployqt-5-x86_64.AppImage appdir/usr/local/share/applications/SavvyCAN.desktop -appimage -extra-plugins=iconengines,platformthemes/libqgtk3.so,canbus - uses: actions/upload-artifact@v2 with: name: SavvyCAN-Linux_x64.AppImage path: SavvyCAN-x86_64.AppImage buildmacos: name: macOS x64 runs-on: macos-10.15 steps: - name: Prepare macOS Environment run: | brew install qt5 brew link qt5 --force - name: Clone uses: actions/checkout@v2 - name: Compile run: | qmake CONFIG+=release CONFIG+=sdk_no_version_check SavvyCAN.pro make -j`sysctl kern.aioprocmax | awk '{print $2}'` - name: Package run: | mkdir -p SavvyCAN.app/Contents/MacOS/help cp -R help/* SavvyCAN.app/Contents/MacOS/help macdeployqt SavvyCAN.app -dmg - uses: actions/upload-artifact@v2 with: name: SavvyCAN-macOS_x64.dmg path: SavvyCAN.dmg buildwindows: name: Windows x64 runs-on: windows-2019 steps: - name: Prepare Qt Libraries uses: jurplel/install-qt-action@v2 - name: Clone uses: actions/checkout@v2 - name: Compile shell: cmd run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" qmake CONFIG+=release SavvyCAN.pro nmake /C - name: Package run: | mkdir package copy "release/SavvyCAN.exe" package/ mkdir package/help copy help/*.md package/help/ mkdir package/help/images copy help/images/*.* package/help/images/ mkdir package/examples copy examples/*.* package/examples/ copy "${Env:Qt5_Dir}/bin/Qt5Core.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5Gui.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5Network.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5PrintSupport.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5Qml.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5SerialBus.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5SerialPort.dll" package/ copy "${Env:Qt5_Dir}/bin/Qt5Widgets.dll" package/ mkdir package/imageformats copy "${Env:Qt5_Dir}/plugins/imageformats/*.*" package/imageformats/ mkdir package/platforms copy "${Env:Qt5_Dir}/plugins/platforms/*.*" package/platforms/ mkdir package/styles copy "${Env:Qt5_Dir}/plugins/styles/*.*" package/styles/ - uses: actions/upload-artifact@v2 with: name: SavvyCAN-Windows_x64 path: package pre-release: name: "pre-release" runs-on: "ubuntu-latest" needs: [buildwindows, buildmacos, buildlinux] steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 - name: Display structure of downloaded files run: zip -r SavvyCAN_CIBuild.zip SavvyCAN-Windows_x64 - uses: "marvinpinto/action-automatic-releases@latest" with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "continuous" prerelease: true title: "Development Build" files: | SavvyCAN-Linux_x64.AppImage/SavvyCAN-x86_64.AppImage SavvyCAN_CIBuild.zip SavvyCAN-macOS_x64.dmg/SavvyCAN.dmg notify: name: Notify Discord runs-on: ubuntu-latest needs: [buildwindows, buildmacos, buildlinux] steps: - id: msg_var name: remove newlines run: | export release_msg=$(cat << EOF ${{ github.event.head_commit.message }} EOF ) release_msg="${release_msg//$'\n'/'-'}" release_msg="${release_msg//$'\r'/'-'}" echo $release_msg echo "::set-output name=msg::$release_msg" - name: Notify Discord run: | curl -i -H "Accept: application/json" \ -H "Content-Type:application/json" \ -X POST \ --data "{\"content\": null,\"embeds\": [{\"title\": \"${{ github.repository }} Build Complete\", \"description\": \"${{ steps.msg_var.outputs.msg }} \\nCommit: ${{ github.sha }}\\n[Build Artifacts](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts)\", \"color\": 5131997, \"author\": { \"name\": \"Github Builds\" } } ]}" \ https://discord.com/api/webhooks/${{ secrets.WEBHOOK_ID }}/${{ secrets.WEBHOOK_TOKEN }}