diff options
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r-- | .github/workflows/release.yml | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..6a32d29 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,178 @@ +name: Produce release +on: [workflow_dispatch] + +concurrency: + group: ${{ github.ref }}-release + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + # Download resources + - name: Retrieve classicube texture pack + run: | + wget https://www.classicube.net/static/default.zip + - name: Retrieve classicube audio pack + run: | + wget https://www.classicube.net/static/audio.zip + + # Download windows artifacts + - name: Retrieve Windows binaries + run: | + wget https://cdn.classicube.net/client/latest/ClassiCube.64.exe -O cc-w64.exe + wget https://cdn.classicube.net/client/latest/ClassiCube.exe -O cc-w32.exe + + # Download Linux artifacts + - name: Retrieve Linux binaries + run: | + wget https://cdn.classicube.net/client/latest/ClassiCube -O cc-linux-64 + wget https://cdn.classicube.net/client/latest/ClassiCube.32 -O cc-linux-32 + + # Download macOS artifacts + - name: Retrieve macOS binaries + run: | + wget https://cdn.classicube.net/client/latest/ClassiCube.64.osx -O cc-mac-64 + wget https://cdn.classicube.net/client/latest/ClassiCube.osx -O cc-mac-32 + + # Download RPI artifacts + - name: Retrieve RPI binaries + run: | + wget https://cdn.classicube.net/client/latest/cc-rpi64 -O cc-rpi-64 + wget https://cdn.classicube.net/client/latest/ClassiCube.rpi -O cc-rpi-32 + + # Download FreeBSD artifacts + - name: Retrieve macOS binaries + run: | + wget https://cdn.classicube.net/client/latest/cc-freebsd-64 -O cc-freebsd-64 + wget https://cdn.classicube.net/client/latest/cc-freebsd-32 -O cc-freebsd-32 + + - name: Generate builds + id: compile + shell: bash + run: | + mkdir ClassiCube + mkdir ClassiCube/audio + mkdir ClassiCube/texpacks + cp audio.zip ClassiCube/audio/classicube.zip + cp default.zip ClassiCube/texpacks/classicube.zip + + # ./ClassiCube + make_unix_tar() { + cp $2 ClassiCube/ClassiCube + chmod +x ClassiCube/ClassiCube + tar -zcvf $1 ClassiCube + rm ClassiCube/ClassiCube + } + + # ./ClassiCube + make_windows_zip() { + cp $2 ClassiCube/ClassiCube.exe + zip -r $1 ClassiCube + rm ClassiCube/ClassiCube.exe + } + + # Generate FreeBSD builds + make_unix_tar cc-freebsd32.tar.gz cc-freebsd-32 + make_unix_tar cc-freebsd64.tar.gz cc-freebsd-64 + + # Generate RPI builds + make_unix_tar cc-rpi32.tar.gz cc-rpi-32 + make_unix_tar cc-rpi64.tar.gz cc-rpi-64 + + # Generate Linux builds + make_unix_tar cc-linux32.tar.gz cc-linux-32 + make_unix_tar cc-linux64.tar.gz cc-linux-64 + + # Generate macOS builds + make_unix_tar cc-mac32.tar.gz cc-mac-32 + make_unix_tar cc-mac64.tar.gz cc-mac-64 + + # Generate Windows builds + make_windows_zip cc-win32.zip cc-w32.exe + make_windows_zip cc-win64.zip cc-w64.exe + + + - uses: ./.github/actions/notify_failure + if: ${{ always() && steps.compile.outcome == 'failure' }} + with: + NOTIFY_MESSAGE: 'Failed to produce release' + WEBHOOK_URL: '${{ secrets.WEBHOOK_URL }}' + + + # Generate Linux release files + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-linux32.tar.gz' + DEST_NAME: 'cc-linux32.tar.gz' + + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-linux64.tar.gz' + DEST_NAME: 'cc-linux64.tar.gz' + + + # Generate macOS release files + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-mac32.tar.gz' + DEST_NAME: 'cc-mac32.tar.gz' + + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-mac64.tar.gz' + DEST_NAME: 'cc-mac64.tar.gz' + + + # Generate Windows release files + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-win32.zip' + DEST_NAME: 'cc-win32.zip' + + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-win64.zip' + DEST_NAME: 'cc-win64.zip' + + + # Generate RPI release files + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-rpi32.tar.gz' + DEST_NAME: 'cc-rpi32.tar.gz' + + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-rpi64.tar.gz' + DEST_NAME: 'cc-rpi64.tar.gz' + + + # Generate FreeBSD release files + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-freebsd32.tar.gz' + DEST_NAME: 'cc-freebsd32.tar.gz' + + - uses: ./.github/actions/upload_build + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + SOURCE_FILE: 'cc-freebsd64.tar.gz' + DEST_NAME: 'cc-freebsd64.tar.gz' + + + - uses: ./.github/actions/notify_success + if: ${{ always() && steps.compile.outcome == 'success' }} + with: + DESTINATION_URL: '${{ secrets.NOTIFY_URL }}' + WORKFLOW_NAME: 'release' \ No newline at end of file |