diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b396130..1a94afb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,11 +1,11 @@ name: Release Builds on: push env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build-and-store-artifact: - name: Build + name: Build runs-on: ${{ matrix.os }} strategy: matrix: @@ -28,7 +28,7 @@ jobs: dir qmake dir - #mingw32-make + #mingw32-make #dir nmake dir @@ -37,12 +37,34 @@ jobs: - name: Package OSX Test if: matrix.os == 'macos-latest' run: | - echo "----1" - ls -al - echo "----2" - ls -al .. - echo "----3" - ls -al buckshot - macdeployqt buckshot/buckshot.app + ./package_mac.sh + # echo "----1" + # ls -al + # echo "----2" + # ls -al .. + # echo "----3" + # ls -al buckshot + # macdeployqt buckshot/buckshot.app - + # EVERYTHING BELOW IS ONLY WHEN VERSION TAGS PUSHED (i.e. tag like "v0.1") + - name: Create Release + id: create_release + if: startsWith(github.ref, 'refs/tags/v') + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + + - name: Upload Mac Release + if: startsWith(github.ref, 'refs/tags/v') + if: matrix.os == 'macos-latest' + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./buckshot.dmg + asset_name: buckshot.dmg + asset_content_type: application/octet-stream diff --git a/.gitignore b/.gitignore index e2659c1..0157c5e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store +Makefile build-buckshot-Desktop* *.o diff --git a/package_mac.sh b/package_mac.sh new file mode 100755 index 0000000..3b55cb1 --- /dev/null +++ b/package_mac.sh @@ -0,0 +1,84 @@ +PACKAGEDIR=buckshot-package-osx +APPBUILDDIR=buckshot/buckshot.app +CONTENTDIR=${PACKAGEDIR}/buckshot.app/Contents +ASSETDIR=assets + +ID=${0##*/} + +# SET PATH +echo "${ID}: SET QT ENV" +. qt-env.sh + + +echo "${ID}: COPY EXTRA FILES" +mkdir -p $CONTENTDIR/MacOS +mkdir -p $CONTENTDIR/Resources +cp $ASSETDIR/Info.plist $CONTENTDIR +cp $ASSETDIR/icons.icns $CONTENTDIR/Resources +cp README.md $PACKAGEDIR/README.txt +cp LICENSE.txt $PACKAGEDIR + +echo "${ID}: RUN macdeployqt" +macdeployqt $APPBUILDDIR +cp -r $APPBUILDDIR $PACKAGEDIR + +echo "${ID}: DOWNLOAD UTILITY BINARIES" +curl -L -o cadius.zip https://github.com/digarok/cadius/releases/download/0.0.0/cadius-macos-latest-0.0.0.zip +curl -L -o b2d.zip https://github.com/digarok/b2d/releases/download/v1.3/b2d-macos-latest-v1.3.zip +unzip cadius.zip -d cadius +unzip b2d.zip -d b2d + +chmod +x b2d/b2d # @TODO: Fix me +cp b2d/b2d $CONTENTDIR/MacOS +cp cadius/cadius $CONTENTDIR/MacOS + +echo "${ID}: CREATE DMG" +git clone https://github.com/andreyvit/yoursway-create-dmg.git +cd yoursway-create-dmg + +test -f buckshot.dmg && rm buckshot.dmg +./create-dmg \ + --volname "buckshot" \ + --volicon "../assets/icons.icns" \ + --background "../assets/buckshot_dmg_bg_600x500.png" \ + --window-pos 200 120 \ + --window-size 600 500 \ + --icon-size 100 \ + --icon buckshot.app 180 130 \ + --hide-extension buckshot.app \ + --icon README.txt 200 330 \ + --icon LICENSE.txt 410 330 \ + --app-drop-link 410 130 \ + --skip-jenkins \ + buckshot.dmg \ + ../${PACKAGEDIR}/ +cp buckshot.dmg .. + +exit 0 + +############################################# +### NONE SHALLL OPPAAPSADFAPAPSFPSAPPGFPED +############################################# +SDIR=build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Release/buckshot.app +DEXTRAS=buckshot-osx/ +DDIR=buckshot-osx/buckshot.app + + + +mkdir -p $DDIR +# make app bundle with qt frameworks using macdeployqt +~/Qt/5.12.0/clang_64/bin/macdeployqt $SDIR +# copy to dmg staging dir +cp -R $SDIR $DEXTRAS + +# not needed? +#dylibbundler -od -b -x $DDIR/Contents/MacOS/buckshot -d $DDIR/Contents/libs/ + + + + +# files to include in dmg +#cp doc/gsplusmanual.pdf $DEXTRAS +#cp doc/gsplusmanual.txt $DEXTRAS + +# COPY BINARIES FROM EXTERNAL PROJECTS