name: "dev-desktop-builds" on: push: branches: [ master ] pull_request: branches: [ master ] env: GODOT_VERSION: 3.3.2 GODOT_VERSION_MAC: 3.3 EXPORT_NAME: material_maker MM_RELEASE: 0_96 jobs: export_windows_linux: name: Export Windows and Linux 🗔 runs-on: ubuntu-latest container: image: docker://barichello/godot-ci:3.3.2 steps: - name: Checkout 🛎️ uses: actions/checkout@v1 with: submodules: true - name: Setup 💻 run: | mkdir -v -p build/${EXPORT_NAME}_${MM_RELEASE}_windows build/${EXPORT_NAME}_${MM_RELEASE}_linux build/${EXPORT_NAME}_${MM_RELEASE}_macosx ~/.local/share/godot/templates mv /root/.local/share/godot/templates/${GODOT_VERSION}.stable ~/.local/share/godot/templates/${GODOT_VERSION}.stable - name: Generate Documentation uses: ammaraskar/sphinx-action@master with: docs-folder: "material_maker/doc" - name: Windows Build 🗔 run: godot -v --export "Windows" ./build/${EXPORT_NAME}_${MM_RELEASE}_windows/$EXPORT_NAME.exe - name: Linux Build 🐧 run: godot -v --export "Linux/X11" ./build/${EXPORT_NAME}_${MM_RELEASE}_linux/$EXPORT_NAME.x86_64 - name: Copy Material Maker data 📁 run: | cp -R ./addons/material_maker/nodes ./build/${EXPORT_NAME}_${MM_RELEASE}_windows cp -R ./material_maker/environments ./build/${EXPORT_NAME}_${MM_RELEASE}_windows cp -R ./material_maker/examples ./build/${EXPORT_NAME}_${MM_RELEASE}_windows cp -R ./material_maker/library ./build/${EXPORT_NAME}_${MM_RELEASE}_windows cp -R ./material_maker/meshes ./build/${EXPORT_NAME}_${MM_RELEASE}_windows cp -R ./material_maker/misc/export ./build/${EXPORT_NAME}_${MM_RELEASE}_windows cp -R ./material_maker/doc/_build/html ./build/${EXPORT_NAME}_${MM_RELEASE}_windows/doc cp -R ./addons/material_maker/nodes ./build/${EXPORT_NAME}_${MM_RELEASE}_linux cp -R ./material_maker/environments ./build/${EXPORT_NAME}_${MM_RELEASE}_linux cp -R ./material_maker/examples ./build/${EXPORT_NAME}_${MM_RELEASE}_linux cp -R ./material_maker/library ./build/${EXPORT_NAME}_${MM_RELEASE}_linux cp -R ./material_maker/meshes ./build/${EXPORT_NAME}_${MM_RELEASE}_linux cp -R ./material_maker/misc/export ./build/${EXPORT_NAME}_${MM_RELEASE}_linux cp -R ./material_maker/doc/_build/html ./build/${EXPORT_NAME}_${MM_RELEASE}_linux/doc - name: Create archives 📁 run: | cd build zip -r ${EXPORT_NAME}_${MM_RELEASE}_windows.zip ${EXPORT_NAME}_${MM_RELEASE}_windows tar zcvf ${EXPORT_NAME}_${MM_RELEASE}_linux.tar.gz ${EXPORT_NAME}_${MM_RELEASE}_linux - name: Upload Documentation 🚀 uses: actions/upload-artifact@v2 with: name: Documentation path: ./material_maker/doc/_build/html - name: Upload Windows Artifact 🚀 uses: actions/upload-artifact@v2 with: name: Windows snapshot path: build/${{ env.EXPORT_NAME }}_${{ env.MM_RELEASE }}_windows.zip - name: Upload Linux Artifact 🚀 uses: actions/upload-artifact@v2 with: name: Linux snapshot path: build/${{ env.EXPORT_NAME }}_${{ env.MM_RELEASE }}_linux.tar.gz export-mac: name: Mac Export 🍎 needs: export_windows_linux runs-on: macos-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v1 with: submodules: true - name: Setup environment 🔧 run: | export GODOT_VERSION=${GODOT_VERSION_MAC} export EXPORT_NAME=material_maker - name: Download and extract export templates 💾 run: | mkdir -v -p ~/.local/share/godot/templates/${GODOT_VERSION_MAC}.stable curl -O https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION_MAC}/Godot_v${GODOT_VERSION_MAC}-stable_export_templates.tpz unzip -a Godot_v${GODOT_VERSION_MAC}-stable_export_templates.tpz mv ./templates/* ~/.local/share/godot/templates/${GODOT_VERSION_MAC}.stable - name: Download Godot headless binary 🤖 run: | wget https://github.com/huskeee/godot-headless-mac/releases/download/${GODOT_VERSION_MAC}-stable/Godot_v${GODOT_VERSION_MAC}-stable_mac_headless.64.zip unzip -a Godot_v${GODOT_VERSION_MAC}-stable_mac_headless.64.zip - name: Setup 💻 run: mkdir -v -p ./build/mac - name: Mac Build 🔧 run: | chown runner ./Godot chmod +x ./Godot ./Godot -v --export "Mac OSX" ./build/mac/material_maker.zip - name: Make application executable 🔧 run: | unzip -a ./build/mac/material_maker.zip -d ./build/mac chmod +x ./build/mac/material_maker.app/Contents/MacOS/material_maker rm ./build/mac/material_maker.zip - name: Fix application icon 🖼 run: sips -s format icns ./build/mac/material_maker.app/Contents/Resources/icon.icns --out ./build/mac/material_maker.app/Contents/Resources/icon.icns - name: Get documentation 🚀 uses: actions/download-artifact@v2 with: name: Documentation path: doc - name: Copy data folder 📁 run: | cp -R ./addons/material_maker/nodes ./build/mac/material_maker.app/Contents/MacOS cp -R ./material_maker/environments ./build/mac/material_maker.app/Contents/MacOS cp -R ./material_maker/examples ./build/mac/material_maker.app/Contents/MacOS cp -R ./material_maker/library ./build/mac/material_maker.app/Contents/MacOS cp -R ./material_maker/meshes ./build/mac/material_maker.app/Contents/MacOS cp -R ./material_maker/misc/export ./build/mac/material_maker.app/Contents/MacOS cp -R ./doc ./build/mac/material_maker.app/Contents/MacOS/doc - name: Create DMG archive 🔧 run: hdiutil create -srcfolder ./build/mac -volname material_maker ./build/mac/material_maker.dmg - name: Upload Mac OSX Artifact 🚀 uses: actions/upload-artifact@v2 with: name: Mac OSX snapshot path: ./build/mac/material_maker.dmg