Prepare release #5
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: Prepare release | |
on: | |
push: | |
tags: | |
- release-* | |
workflow_dispatch: | |
# allows manual trigger | |
permissions: | |
contents: write | |
env: | |
THIRD_PARTY_BASE_DIR: 'third-party' | |
jobs: | |
emu-win-all: | |
name: Emu win all | |
if: ${{ !cancelled() }} | |
uses: ./.github/workflows/emu-build-all-win.yml | |
emu-win-prep: | |
needs: [ emu-win-all ] | |
runs-on: windows-2022 | |
steps: | |
# on Windows Git will auto change line ending to CRLF, not preferable | |
- name: Ensure LF line ending | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: | | |
git config --local core.autocrlf false | |
git config --system core.autocrlf false | |
git config --global core.autocrlf false | |
# we need branch because it has package scripts | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
- name: Clone third-party deps (deps/win) | |
uses: actions/checkout@v4 | |
with: | |
ref: 'third-party/deps/win' | |
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/win" | |
## donwload artifacts | |
- name: Download emu build artifacts (Win) | |
uses: actions/download-artifact@v4 | |
with: | |
path: build/win | |
pattern: emu-win-*-${{ github.sha }} | |
merge-multiple: true | |
### print files | |
- name: Print files | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: | | |
dir /s /b /a:-d build\win | |
### remove linker files | |
- name: Remove linker files | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: | | |
del /f /s /q build\win\*.exp,build\win\*.lib | |
exit /b 0 | |
### package (release mode) | |
- name: Package build (release) | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: package_win.bat vs2022\release | |
### package (debug mode) | |
- name: Package build (debug) | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: package_win.bat vs2022\debug 1 | |
### release (debug + release modes) if this is a tag push | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "build/package/win/**/*" | |
### upload artifacts/packages if this is a manual run | |
- name: Upload release package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-emu-win-release-${{ github.sha }}" | |
path: "build/package/win/vs2022/*release*" | |
if-no-files-found: 'error' | |
compression-level: 0 | |
retention-days: 7 | |
- name: Upload debug package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-emu-win-debug-${{ github.sha }}" | |
path: "build/package/win/vs2022/*debug*" | |
if-no-files-found: 'error' | |
compression-level: 0 | |
retention-days: 7 | |
emu-linux-all: | |
name: Emu linux all | |
if: ${{ !cancelled() }} | |
uses: ./.github/workflows/emu-build-all-linux.yml | |
emu-linux-prep: | |
needs: [ emu-linux-all ] | |
runs-on: ubuntu-24.04 | |
steps: | |
# we need branch because it has package scripts | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
- name: Clone third-party deps (deps/linux) | |
uses: actions/checkout@v4 | |
with: | |
ref: 'third-party/deps/linux' | |
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/linux" | |
## donwload artifacts | |
- name: Download emu build artifacts (linux) | |
uses: actions/download-artifact@v4 | |
with: | |
path: build/linux | |
pattern: emu-linux-*-${{ github.sha }} | |
merge-multiple: true | |
### fix folder permissions! not sure why this fails | |
# nested subdirs "build/linux/release" cause permission problems | |
- name: Give all permissions to repo folder | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: sudo chmod -R 777 "${{ github.workspace }}" && sudo chmod 777 package_linux.sh | |
### print files | |
- name: Print files | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: | | |
ls -la build/linux/*/* | |
### downlaod ubuntu packages | |
- name: Download required Ubuntu packages | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: | | |
sudo apt update || exit 1 | |
sudo apt install tar -y || exit 1 | |
### package (release mode) | |
- name: Package build (release) | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: ./package_linux.sh gmake2/release | |
### package (debug mode) | |
- name: Package build (debug) | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: ./package_linux.sh gmake2/debug 1 | |
### release (debug + release modes) if this is a tag push | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "build/package/linux/**/*" | |
### upload artifacts/packages if this is a manual run | |
- name: Upload release package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-emu-linux-release-${{ github.sha }}" | |
path: "build/package/linux/gmake2/*release*" | |
if-no-files-found: 'error' | |
compression-level: 0 | |
retention-days: 7 | |
- name: Upload debug package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-emu-linux-debug-${{ github.sha }}" | |
path: "build/package/linux/gmake2/*debug*" | |
if-no-files-found: 'error' | |
compression-level: 0 | |
retention-days: 7 | |
gen_emu_script-win: | |
name: Gen emu config win | |
if: ${{ !cancelled() }} | |
uses: ./.github/workflows/gen_emu_config-build-win.yml | |
gen_emu_script-win-prep: | |
needs: [ gen_emu_script-win ] | |
runs-on: windows-2022 | |
steps: | |
# on Windows Git will auto change line ending to CRLF, not preferable | |
- name: Ensure LF line ending | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: | | |
git config --local core.autocrlf false | |
git config --system core.autocrlf false | |
git config --global core.autocrlf false | |
# we need branch because it has package scripts | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
- name: Clone third-party deps (deps/win) | |
uses: actions/checkout@v4 | |
with: | |
ref: 'third-party/deps/win' | |
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/win" | |
## donwload artifacts | |
- name: Download script build artifacts (Win) | |
uses: actions/download-artifact@v4 | |
with: | |
path: tools/generate_emu_config/bin/win | |
pattern: generate_emu_config-win-* | |
merge-multiple: true | |
### package | |
- name: Package script | |
shell: cmd | |
working-directory: "tools/generate_emu_config" | |
run: package_win.bat | |
# release tag | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "tools/generate_emu_config/bin/package/win/**/*" | |
### upload artifact/package if this is a manual run | |
- name: Upload release package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-generate_emu_config-win-${{ github.sha }}" | |
path: "tools/generate_emu_config/bin/package/win/**/*" | |
if-no-files-found: 'error' | |
compression-level: 9 | |
retention-days: 7 | |
gen_emu_script-linux: | |
name: Gen emu config linux | |
if: ${{ !cancelled() }} | |
uses: ./.github/workflows/gen_emu_config-build-linux.yml | |
gen_emu_script-linux-prep: | |
needs: [ gen_emu_script-linux ] | |
runs-on: ubuntu-24.04 | |
steps: | |
# we need branch because it has package scripts | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
## donwload artifacts | |
- name: Download script build artifacts (linux) | |
uses: actions/download-artifact@v4 | |
with: | |
path: tools/generate_emu_config/bin/linux | |
pattern: generate_emu_config-linux-* | |
merge-multiple: true | |
### fix folder permissions! not sure why this fails | |
# nested subdirs "build/linux/release" cause permission problems | |
- name: Give all permissions to repo folder | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: sudo chmod -R 777 "${{ github.workspace }}" | |
### package | |
- name: Package script | |
shell: bash | |
working-directory: "tools/generate_emu_config" | |
run: sudo chmod 777 package_linux.sh && sudo ./package_linux.sh | |
# release tag | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "tools/generate_emu_config/bin/package/linux/**/*" | |
### upload artifact/package if this is a manual run | |
- name: Upload release package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-generate_emu_config-linux-${{ github.sha }}" | |
path: "tools/generate_emu_config/bin/package/linux/**/*" | |
if-no-files-found: 'error' | |
compression-level: 9 | |
retention-days: 7 | |
migrate_gse_script-win: | |
name: Migrate GSE win | |
if: ${{ !cancelled() }} | |
uses: ./.github/workflows/migrate_gse-build-win.yml | |
migrate_gse_script-win-prep: | |
needs: [ migrate_gse_script-win ] | |
runs-on: windows-2022 | |
steps: | |
# on Windows Git will auto change line ending to CRLF, not preferable | |
- name: Ensure LF line ending | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
run: | | |
git config --local core.autocrlf false | |
git config --system core.autocrlf false | |
git config --global core.autocrlf false | |
# we need branch because it has package scripts | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
- name: Clone third-party deps (deps/win) | |
uses: actions/checkout@v4 | |
with: | |
ref: 'third-party/deps/win' | |
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/win" | |
## donwload artifacts | |
- name: Download script build artifacts (Win) | |
uses: actions/download-artifact@v4 | |
with: | |
path: tools/migrate_gse/bin/win | |
pattern: migrate_gse-win-* | |
merge-multiple: true | |
### package | |
- name: Package script | |
shell: cmd | |
working-directory: "tools/migrate_gse" | |
run: package_win.bat | |
# release tag | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "tools/migrate_gse/bin/package/win/**/*" | |
### upload artifact/package if this is a manual run | |
- name: Upload release package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-migrate_gse-win-${{ github.sha }}" | |
path: "tools/migrate_gse/bin/package/win/**/*" | |
if-no-files-found: 'error' | |
compression-level: 9 | |
retention-days: 7 | |
migrate_gse_script-linux: | |
name: Migrate GSE linux | |
if: ${{ !cancelled() }} | |
uses: ./.github/workflows/migrate_gse-build-linux.yml | |
migrate_gse_script-linux-prep: | |
needs: [ migrate_gse_script-linux ] | |
runs-on: ubuntu-24.04 | |
steps: | |
# we need branch because it has package scripts | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
## donwload artifacts | |
- name: Download script build artifacts (linux) | |
uses: actions/download-artifact@v4 | |
with: | |
path: tools/migrate_gse/bin/linux | |
pattern: migrate_gse-linux-* | |
merge-multiple: true | |
### fix folder permissions! not sure why this fails | |
# nested subdirs "build/linux/release" cause permission problems | |
- name: Give all permissions to repo folder | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: sudo chmod -R 777 "${{ github.workspace }}" | |
### package | |
- name: Package script | |
shell: bash | |
working-directory: "tools/migrate_gse" | |
run: sudo chmod 777 package_linux.sh && sudo ./package_linux.sh | |
# release tag | |
- name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "tools/migrate_gse/bin/package/linux/**/*" | |
### upload artifact/package if this is a manual run | |
- name: Upload release package | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "release-migrate_gse-linux-${{ github.sha }}" | |
path: "tools/migrate_gse/bin/package/linux/**/*" | |
if-no-files-found: 'error' | |
compression-level: 9 | |
retention-days: 7 | |