Produce release #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build release | |
on: [workflow_dispatch] | |
concurrency: | |
group: ${{ github.ref }}-release | |
cancel-in-progress: true | |
jobs: | |
build: | |
if: github.ref_name == github.event.repository.default_branch | |
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 $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' |