From e380bd9176dd7dd9f7a56c5b0e4e99f514316002 Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 4 May 2020 15:47:20 +0200 Subject: [PATCH] add actions for release builds that upload directly to assets. --- .github/workflows/ccpp_mac_release.yml | 96 +++++++++++++++++++++++ .github/workflows/ccpp_ubuntu_release.yml | 71 +++++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 .github/workflows/ccpp_mac_release.yml create mode 100644 .github/workflows/ccpp_ubuntu_release.yml diff --git a/.github/workflows/ccpp_mac_release.yml b/.github/workflows/ccpp_mac_release.yml new file mode 100644 index 000000000..643e9c1e4 --- /dev/null +++ b/.github/workflows/ccpp_mac_release.yml @@ -0,0 +1,96 @@ +name: C/C++ CI macos + +on: + release: + types: + - created + +jobs: + build: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v1 + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d')" + - name: change date in version + run: | + sed "s/+UNKNOWN/_$(date '+%F')/" version.inc > version.date.inc + mv version.date.inc version.inc + - name: mkdir in deps + run: mkdir deps/build + - name: cmake deps + working-directory: ./deps/build + run: cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" + - name: make deps + working-directory: ./deps/build + run: make + - name: clean deps + working-directory: ./deps/build + run: rm -rf dep_* + - name: mkdir build + run: mkdir build + - name: cmake + working-directory: ./build + run: cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1 + - name: make slic3r + working-directory: ./build + run: make slic3r + - name: update Info.plist + working-directory: ./build/src + run: sed "s/+UNKNOWN/_$(date '+%F')/" Info.plist >Info.date.plist + - name: create directory and copy into it + working-directory: ./build + run: | + mkdir Slic3r++ + mkdir Slic3r++/Slic3r++.app + mkdir Slic3r++/Slic3r++.app/Contents + mkdir Slic3r++/Slic3r++.app/Contents/_CodeSignature + mkdir Slic3r++/Slic3r++.app/Contents/Frameworks + mkdir Slic3r++/Slic3r++.app/Contents/MacOS + - name: copy resources + working-directory: ./build + run: | + cp -Rf ../resources Slic3r++/Slic3r++.app/Contents/resources + cp Slic3r++/Slic3r++.app/Contents/resources/icons/slic3r.icns Slic3r++/Slic3r++.app/Contents/resources/Slic3r.icns + cp src/Info.date.plist Slic3r++/Slic3r++.app/Contents/Info.plist + echo -n -e 'APPL????\x0a' > PkgInfo + cp PkgInfo Slic3r++/Slic3r++.app/Contents/PkgInfo +# echo -n -e '\xff\xfeAPPL\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x0a\x00' > PkgInfo + - name: copy bin + working-directory: ./build + run: | + cp -f src/slic3r++ Slic3r++/Slic3r++.app/Contents/MacOS/slic3r++ + chmod u+x Slic3r++/Slic3r++.app/Contents/MacOS/slic3r++ + tar -zcvf slic3r++.tar.gz Slic3r++ + - name: create dmg + working-directory: ./build + run: | + hdiutil create -ov -fs HFS+ -volname "Slic3r++" -srcfolder "Slic3r++" temp.dmg + hdiutil convert temp.dmg -format UDZO -o Slic3r++.dmg +# - name: signing resources (creating CodeResources inside _CodeSignature) +# working-directory: . +# run: codesign -s resources +# maybe i should just try to do that on a separate pc and copy the file here, more secure as a signing process. + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./build/slic3r++.tar.gz + asset_name: slic3r++_${{ github.event.release.tag_name }}_macos_${{steps.date.outputs.date}}.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./build/nightly_macos.dmg + asset_name: slic3r++_${{ github.event.release.tag_name }}_macos_${{steps.date.outputs.date}}.dmg + asset_content_type: application/x-apple-diskimage diff --git a/.github/workflows/ccpp_ubuntu_release.yml b/.github/workflows/ccpp_ubuntu_release.yml new file mode 100644 index 000000000..93bf601a7 --- /dev/null +++ b/.github/workflows/ccpp_ubuntu_release.yml @@ -0,0 +1,71 @@ +name: C/C++ CI ubuntu + +on: + release: + types: + - created + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: update clock + run: sudo hwclock -s + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d')" + - name: change date in version + run: sed -i "s/+UNKNOWN/_$(date '+%F')/" version.inc + - name: update apt + run: sudo apt update + - name: install gtk2 glew + run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev + - name: mkdir in deps + run: mkdir deps/build + - name: cmake deps + working-directory: ./deps/build + run: cmake .. + - name: make deps + working-directory: ./deps/build + run: make + - name: clean deps + working-directory: ./deps/build + run: rm -rf dep_* + - name: mkdir build + run: mkdir build + - name: cmake + working-directory: ./build + run: cmake .. -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 + - name: make slic3r + working-directory: ./build + run: make slic3r + - name: create directory and copy into it + working-directory: ./build + run: | + mkdir package + mkdir package/bin + - name: copy resources + working-directory: ./build + run: cp -Rf ../resources package/resources + - name: copy bin + working-directory: ./build + run: cp -f src/slic3r++ package/bin/slic3r++ + - name: create sh from echo + working-directory: ./build/package + run: | + echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/slic3r++" "$@"' >slic3r++ + chmod u+x slic3r++ + tar -zcvf ../slic3r++.tar.gz . + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./build/slic3r++.tar.gz + asset_name: slic3r++_${{ github.event.release.tag_name }}_ubu64_${{steps.date.outputs.date}}.tar.gz + asset_content_type: application/gzip