mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-12-27 19:04:19 +08:00
412 lines
13 KiB
YAML
412 lines
13 KiB
YAML
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"
|
|
|
|
# download 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
|
|
|
|
# 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@v2
|
|
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-20.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"
|
|
|
|
# download 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@v2
|
|
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"
|
|
|
|
# download 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@v2
|
|
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-20.04"
|
|
steps:
|
|
# we need branch because it has package scripts
|
|
- name: "Checkout branch"
|
|
uses: actions/checkout@v4
|
|
|
|
# download 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@v2
|
|
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"
|
|
|
|
# download 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@v2
|
|
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-20.04"
|
|
steps:
|
|
# we need branch because it has package scripts
|
|
- name: "Checkout branch"
|
|
uses: actions/checkout@v4
|
|
|
|
# download 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@v2
|
|
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
|