summaryrefslogtreecommitdiff
path: root/.github/workflows/meshmc-release.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/meshmc-release.yml')
-rw-r--r--.github/workflows/meshmc-release.yml124
1 files changed, 124 insertions, 0 deletions
diff --git a/.github/workflows/meshmc-release.yml b/.github/workflows/meshmc-release.yml
new file mode 100644
index 0000000000..9a50e9ca73
--- /dev/null
+++ b/.github/workflows/meshmc-release.yml
@@ -0,0 +1,124 @@
+name: "MeshMC: Release"
+
+on:
+ push:
+ tags:
+ - "*"
+
+permissions: {}
+
+jobs:
+ build_release:
+ name: Build Release
+ uses: ./.github/workflows/meshmc-build.yml
+ permissions:
+ contents: read
+ id-token: write
+ packages: write
+ with:
+ build-type: Release
+ environment: Release
+ secrets: inherit
+
+ create_release:
+ needs: build_release
+ permissions:
+ contents: write
+ runs-on: ubuntu-latest
+ outputs:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ submodules: "true"
+ path: "MeshMC-source"
+ - name: Download artifacts
+ uses: actions/download-artifact@v8
+ - name: Grab and store version
+ run: |
+ tag_name=$(echo ${{ github.ref }} | grep -oE "[^/]+$")
+ echo "VERSION=$tag_name" >> $GITHUB_ENV
+ - name: Package artifacts properly
+ run: |
+ mv ${{ github.workspace }}/MeshMC-source MeshMC-${{ env.VERSION }}
+ mv MeshMC-Linux-Qt6-Portable*/MeshMC-portable.tar.gz MeshMC-Linux-Qt6-Portable-${{ env.VERSION }}.tar.gz
+ mv MeshMC-Linux-aarch64-Qt6-Portable*/MeshMC-portable.tar.gz MeshMC-Linux-aarch64-Qt6-Portable-${{ env.VERSION }}.tar.gz
+ mv MeshMC-*.AppImage/MeshMC-*-x86_64.AppImage MeshMC-Linux-x86_64.AppImage
+ mv MeshMC-*.AppImage.zsync/MeshMC-*-x86_64.AppImage.zsync MeshMC-Linux-x86_64.AppImage.zsync
+ mv MeshMC-*.AppImage/MeshMC-*-aarch64.AppImage MeshMC-Linux-aarch64.AppImage
+ mv MeshMC-*.AppImage.zsync/MeshMC-*-aarch64.AppImage.zsync MeshMC-Linux-aarch64.AppImage.zsync
+ mv MeshMC-macOS*/MeshMC.zip MeshMC-macOS-${{ env.VERSION }}.zip
+ mv MeshMC-macOS*/MeshMC.dmg MeshMC-macOS-${{ env.VERSION }}.dmg
+
+ tar --exclude='.git' -czf MeshMC-${{ env.VERSION }}.tar.gz MeshMC-${{ env.VERSION }}
+
+ for d in MeshMC-Windows-MSVC*; do
+ cd "${d}" || continue
+ LEGACY="$(echo -n ${d} | grep -o Legacy || true)"
+ ARM64="$(echo -n ${d} | grep -o arm64 || true)"
+ INST="$(echo -n ${d} | grep -o Setup || true)"
+ PORT="$(echo -n ${d} | grep -o Portable || true)"
+ NAME="MeshMC-Windows-MSVC"
+ test -z "${LEGACY}" || NAME="${NAME}-Legacy"
+ test -z "${ARM64}" || NAME="${NAME}-arm64"
+ test -z "${PORT}" || NAME="${NAME}-Portable"
+ test -z "${INST}" || mv MeshMC-*.exe ../${NAME}-Setup-${{ env.VERSION }}.exe
+ test -n "${INST}" || zip -r -9 "../${NAME}-${{ env.VERSION }}.zip" *
+ cd ..
+ done
+
+ for d in MeshMC-Windows-MinGW-w64*; do
+ cd "${d}" || continue
+ INST="$(echo -n ${d} | grep -o Setup || true)"
+ PORT="$(echo -n ${d} | grep -o Portable || true)"
+ NAME="MeshMC-Windows-MinGW-w64"
+ test -z "${PORT}" || NAME="${NAME}-Portable"
+ test -z "${INST}" || mv MeshMC-*.exe ../${NAME}-Setup-${{ env.VERSION }}.exe
+ test -n "${INST}" || zip -r -9 "../${NAME}-${{ env.VERSION }}.zip" *
+ cd ..
+ done
+
+ for d in MeshMC-Windows-MinGW-arm64*; do
+ cd "${d}" || continue
+ INST="$(echo -n ${d} | grep -o Setup || true)"
+ PORT="$(echo -n ${d} | grep -o Portable || true)"
+ NAME="MeshMC-Windows-MinGW-arm64"
+ test -z "${PORT}" || NAME="${NAME}-Portable"
+ test -z "${INST}" || mv MeshMC-*.exe ../${NAME}-Setup-${{ env.VERSION }}.exe
+ test -n "${INST}" || zip -r -9 "../${NAME}-${{ env.VERSION }}.zip" *
+ cd ..
+ done
+
+ - name: Create release
+ id: create_release
+ uses: softprops/action-gh-release@v2
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ tag_name: ${{ github.ref }}
+ name: MeshMC ${{ env.VERSION }}
+ draft: true
+ prerelease: false
+ fail_on_unmatched_files: true
+ files: |
+ MeshMC-Linux-x86_64.AppImage
+ MeshMC-Linux-x86_64.AppImage.zsync
+ MeshMC-Linux-aarch64.AppImage
+ MeshMC-Linux-aarch64.AppImage.zsync
+ MeshMC-Linux-Qt6-Portable-${{ env.VERSION }}.tar.gz
+ MeshMC-Linux-aarch64-Qt6-Portable-${{ env.VERSION }}.tar.gz
+ MeshMC-Windows-MinGW-w64-${{ env.VERSION }}.zip
+ MeshMC-Windows-MinGW-w64-Portable-${{ env.VERSION }}.zip
+ MeshMC-Windows-MinGW-w64-Setup-${{ env.VERSION }}.exe
+ MeshMC-Windows-MinGW-arm64-${{ env.VERSION }}.zip
+ MeshMC-Windows-MinGW-arm64-Portable-${{ env.VERSION }}.zip
+ MeshMC-Windows-MinGW-arm64-Setup-${{ env.VERSION }}.exe
+ MeshMC-Windows-MSVC-arm64-${{ env.VERSION }}.zip
+ MeshMC-Windows-MSVC-arm64-Portable-${{ env.VERSION }}.zip
+ MeshMC-Windows-MSVC-arm64-Setup-${{ env.VERSION }}.exe
+ MeshMC-Windows-MSVC-${{ env.VERSION }}.zip
+ MeshMC-Windows-MSVC-Portable-${{ env.VERSION }}.zip
+ MeshMC-Windows-MSVC-Setup-${{ env.VERSION }}.exe
+ MeshMC-macOS-${{ env.VERSION }}.zip
+ MeshMC-macOS-${{ env.VERSION }}.dmg
+ MeshMC-${{ env.VERSION }}.tar.gz