gbe_fork/.github/workflows/release.yml

431 lines
13 KiB
YAML
Raw Normal View History

name: Prepare release
2024-05-11 19:25:12 +08:00
on:
push:
tags:
- release-*
workflow_dispatch:
# allows manual trigger
2024-05-11 19:25:12 +08:00
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
2024-05-11 19:25:12 +08:00
emu-win-prep:
2024-05-11 19:25:12 +08:00
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"
2024-05-11 21:51:29 +08:00
## donwload artifacts
2024-05-11 19:25:12 +08:00
- name: Download emu build artifacts (Win)
uses: actions/download-artifact@v4
with:
2024-05-11 22:43:47 +08:00
path: build/win
pattern: emu-win-*-${{ github.sha }}
2024-05-11 19:25:12 +08:00
merge-multiple: true
2024-06-03 01:11:18 +08:00
### 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
2024-05-11 19:25:12 +08:00
### package (release mode)
- name: Package build (release)
shell: cmd
working-directory: ${{ github.workspace }}
run: package_win.bat vs2022\release
2024-05-11 19:25:12 +08:00
### package (debug mode)
- name: Package build (debug)
shell: cmd
working-directory: ${{ github.workspace }}
2024-06-13 02:46:31 +08:00
run: package_win.bat vs2022\debug 1
2024-05-11 19:25:12 +08:00
2024-05-11 22:43:47 +08:00
### 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/**/*"
2024-06-03 02:47:37 +08:00
### 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:
2024-06-03 03:17:00 +08:00
name: "release-emu-win-release-${{ github.sha }}"
2024-06-17 00:43:29 +08:00
path: "build/package/win/vs2022/*release*"
2024-06-03 02:47:37 +08:00
if-no-files-found: 'error'
2024-06-03 03:17:00 +08:00
compression-level: 0
2024-06-03 02:47:37 +08:00
retention-days: 1
2024-06-03 03:32:38 +08:00
- name: Upload debug package
2024-06-03 02:47:37 +08:00
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v4
with:
2024-06-03 03:17:00 +08:00
name: "release-emu-win-debug-${{ github.sha }}"
2024-06-17 00:43:29 +08:00
path: "build/package/win/vs2022/*debug*"
if-no-files-found: 'error'
2024-06-03 03:17:00 +08:00
compression-level: 0
retention-days: 1
2024-05-11 22:43:47 +08:00
emu-linux-all:
name: Emu linux all
if: ${{ !cancelled() }}
uses: ./.github/workflows/emu-build-all-linux.yml
emu-linux-prep:
needs: [ emu-linux-all ]
2024-06-16 22:32:33 +08:00
runs-on: ubuntu-24.04
2024-05-11 22:43:47 +08:00
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
2024-06-03 01:11:18 +08:00
### 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
2024-05-11 22:43:47 +08:00
### package (release mode)
- name: Package build (release)
shell: bash
working-directory: ${{ github.workspace }}
2024-06-03 01:11:18 +08:00
run: ./package_linux.sh gmake2/release
2024-05-11 22:43:47 +08:00
### package (debug mode)
- name: Package build (debug)
shell: bash
working-directory: ${{ github.workspace }}
2024-06-13 02:46:31 +08:00
run: ./package_linux.sh gmake2/debug 1
2024-05-11 22:43:47 +08:00
### release (debug + release modes) if this is a tag push
- name: Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
2024-05-11 19:25:12 +08:00
with:
2024-05-11 22:43:47 +08:00
files: "build/package/linux/**/*"
2024-06-03 02:47:37 +08:00
### 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:
2024-06-03 03:17:00 +08:00
name: "release-emu-linux-release-${{ github.sha }}"
2024-06-17 00:43:29 +08:00
path: "build/package/linux/gmake2/*release*"
2024-06-03 02:47:37 +08:00
if-no-files-found: 'error'
2024-06-03 03:17:00 +08:00
compression-level: 0
2024-06-03 02:47:37 +08:00
retention-days: 1
2024-06-03 03:32:38 +08:00
- name: Upload debug package
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v4
with:
2024-06-03 03:17:00 +08:00
name: "release-emu-linux-debug-${{ github.sha }}"
2024-06-17 00:43:29 +08:00
path: "build/package/linux/gmake2/*debug*"
if-no-files-found: 'error'
2024-06-03 03:17:00 +08:00
compression-level: 0
retention-days: 1
2024-05-11 22:43:47 +08:00
2024-05-11 21:51:29 +08:00
2024-05-11 22:17:02 +08:00
gen_emu_script-win:
name: Gen emu config win
if: ${{ !cancelled() }}
uses: ./.github/workflows/gen_emu_config-build-win.yml
2024-05-11 21:51:29 +08:00
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
2024-05-11 22:43:47 +08:00
- 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: 1
2024-05-11 22:43:47 +08:00
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 ]
2024-06-16 22:32:33 +08:00
runs-on: ubuntu-24.04
2024-05-11 22:43:47 +08:00
steps:
# we need branch because it has package scripts
- name: Checkout branch
uses: actions/checkout@v4
## donwload artifacts
- name: Download script build artifacts (linux)
2024-05-11 21:51:29 +08:00
uses: actions/download-artifact@v4
with:
2024-05-11 22:43:47 +08:00
path: tools/generate_emu_config/bin/linux
pattern: generate_emu_config-linux-*
2024-05-11 21:51:29 +08:00
merge-multiple: true
2024-05-11 22:43:47 +08:00
### 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: 1
2024-05-11 22:43:47 +08:00
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
2024-05-11 21:51:29 +08:00
shell: cmd
working-directory: ${{ github.workspace }}
run: |
2024-05-11 22:43:47 +08:00
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
2024-05-11 21:51:29 +08:00
### package
2024-05-11 22:43:47 +08:00
- name: Package script
2024-05-11 21:51:29 +08:00
shell: cmd
2024-05-11 22:43:47 +08:00
working-directory: "tools/migrate_gse"
2024-05-11 21:51:29 +08:00
run: package_win.bat
2024-05-11 22:43:47 +08:00
# 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: 1
2024-05-11 22:43:47 +08:00
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 ]
2024-06-16 22:32:33 +08:00
runs-on: ubuntu-24.04
2024-05-11 22:43:47 +08:00
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: 1
2024-05-11 22:43:47 +08:00