mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-12-25 09:54:15 +08:00
workflows for linux too + rename scripts
This commit is contained in:
parent
67dd084448
commit
470003f926
208
.github/workflows/build-linux.yml
vendored
208
.github/workflows/build-linux.yml
vendored
@ -1,208 +0,0 @@
|
|||||||
name: Emu build (Linux)
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [
|
|
||||||
"ci-build-emu-linux*",
|
|
||||||
"ci-build-all"
|
|
||||||
]
|
|
||||||
tags:
|
|
||||||
- release*
|
|
||||||
|
|
||||||
# pull_request:
|
|
||||||
# branches: [ "dev" ]
|
|
||||||
# paths-ignore:
|
|
||||||
# - '**/*.md'
|
|
||||||
# - 'dev.notes/**'
|
|
||||||
# - 'post_build/**'
|
|
||||||
# - 'z_original_repo_files/**'
|
|
||||||
# - 'sdk/*.txt'
|
|
||||||
# - 'LICENSE'
|
|
||||||
# # tools
|
|
||||||
# - 'tools/generate_emu_config/**'
|
|
||||||
# - 'tools/migrate_gse/**'
|
|
||||||
# - 'tools/steamclient_loader/linux/**' # these are just shell scripts, not compiled
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
# allows manual trigger
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
env:
|
|
||||||
DEPS_CACHE_KEY: emu-deps-linux
|
|
||||||
DEPS_CACHE_DIR: build/deps/linux
|
|
||||||
|
|
||||||
PACKAGE_BASE_DIR: "build/package/linux"
|
|
||||||
THIRD_PARTY_BASE_DIR: 'third-party'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# this helps in manual runs, if build fails, then deps are saved
|
|
||||||
dependencies:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
# cache but not for tags or PRs
|
|
||||||
# !tag && !pull_request
|
|
||||||
# also you could use this: github.event_name != 'pull_request'
|
|
||||||
if: |
|
|
||||||
!startsWith(github.ref, 'refs/tags/') &&
|
|
||||||
!startsWith(github.ref, 'refs/pull/')
|
|
||||||
|
|
||||||
steps:
|
|
||||||
# we need branch because it has build scripts
|
|
||||||
- name: Checkout branch
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
### fix folder permissions! not sure why this fails
|
|
||||||
# nested subdirs "build/linux/release" cause permission problems
|
|
||||||
- name: Give all permissions for repo folder
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: sudo chmod -R 777 "${{ github.workspace }}"
|
|
||||||
|
|
||||||
- name: Lookup cache for deps
|
|
||||||
id: emu-deps-cache-step
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
key: ${{ env.DEPS_CACHE_KEY }}
|
|
||||||
path: ${{ env.DEPS_CACHE_DIR }}
|
|
||||||
lookup-only: true # don't restore cache if found
|
|
||||||
|
|
||||||
- name: Clone third-party deps (deps/linux)
|
|
||||||
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: 'third-party/deps/linux'
|
|
||||||
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/linux"
|
|
||||||
|
|
||||||
- name: Clone third-party deps (deps/common)
|
|
||||||
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: 'third-party/deps/common'
|
|
||||||
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/common"
|
|
||||||
|
|
||||||
- name: Build deps
|
|
||||||
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
|
||||||
shell: bash
|
|
||||||
run: sudo chmod 777 build_linux_deps.sh && sudo ./build_linux_deps.sh -verbose
|
|
||||||
|
|
||||||
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs: [ dependencies ]
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout branch
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
### deps
|
|
||||||
- name: Lookup cache for deps
|
|
||||||
id: emu-deps-cache-step
|
|
||||||
# !tag && !pull_request
|
|
||||||
# also you could use this: github.event_name != 'pull_request'
|
|
||||||
if: |
|
|
||||||
!startsWith(github.ref, 'refs/tags/') &&
|
|
||||||
!startsWith(github.ref, 'refs/pull/')
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
key: ${{ env.DEPS_CACHE_KEY }}
|
|
||||||
path: ${{ env.DEPS_CACHE_DIR }}
|
|
||||||
|
|
||||||
# attempt to download again because in tags/PRs no cache is created
|
|
||||||
- name: Clone third-party deps (deps/linux)
|
|
||||||
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: 'third-party/deps/linux'
|
|
||||||
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/linux"
|
|
||||||
|
|
||||||
- name: Clone third-party deps (deps/common)
|
|
||||||
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: 'third-party/deps/common'
|
|
||||||
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/common"
|
|
||||||
|
|
||||||
### fix folder permissions! not sure why this fails
|
|
||||||
# nested subdirs "build/linux/release" cause permission problems
|
|
||||||
- name: Give all permissions for repo folder
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: sudo chmod -R 777 "${{ github.workspace }}"
|
|
||||||
|
|
||||||
- name: Build deps
|
|
||||||
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
|
||||||
shell: bash
|
|
||||||
run: sudo chmod 777 build_linux_deps.sh && sudo ./build_linux_deps.sh -verbose
|
|
||||||
|
|
||||||
## mandatory Linux packages, installed via sudo apt install ...
|
|
||||||
- name: Install required packages
|
|
||||||
shell: bash
|
|
||||||
run: sudo chmod 777 build_linux_deps.sh && sudo ./build_linux_deps.sh -verbose -packages_only
|
|
||||||
|
|
||||||
## extra helpers/tools, these are not built inside the deps build dir
|
|
||||||
- name: Clone third-party build helpers (build/linux)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: 'third-party/build/linux'
|
|
||||||
path: "${{env.THIRD_PARTY_BASE_DIR}}/build/linux"
|
|
||||||
|
|
||||||
### fix folder permissions! not sure why this fails
|
|
||||||
# nested subdirs "build/linux/release" cause permission problems
|
|
||||||
- name: Give all permissions for repo folder
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: sudo chmod -R 777 "${{ github.workspace }}"
|
|
||||||
|
|
||||||
### build (release mode)
|
|
||||||
- name: Build release mode
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: "sudo chmod 777 build_linux.sh && ./build_linux.sh -verbose release +build_str ${{ github.sha }}"
|
|
||||||
|
|
||||||
### package (release mode)
|
|
||||||
- name: Package build (release)
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: sudo chmod 77 package_linux.sh && sudo ./package_linux.sh release
|
|
||||||
|
|
||||||
### upload artifact/package to github Actions (release mode)
|
|
||||||
- name: Upload build package (release)
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: "build-linux-release-${{ github.sha }}"
|
|
||||||
path: "${{ env.PACKAGE_BASE_DIR }}/release/"
|
|
||||||
if-no-files-found: 'error'
|
|
||||||
compression-level: 9
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
### build (debug mode)
|
|
||||||
- name: Build debug mode
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: "sudo chmod 777 build_linux.sh && ./build_linux.sh -verbose debug +build_str ${{ github.sha }}"
|
|
||||||
|
|
||||||
### package (debug mode)
|
|
||||||
- name: Package build (debug)
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.workspace }}
|
|
||||||
run: sudo chmod 77 package_linux.sh && sudo ./package_linux.sh debug
|
|
||||||
|
|
||||||
### upload artifact/package to github Actions (debug mode)
|
|
||||||
- name: Upload build package (debug)
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: "build-linux-debug-${{ github.sha }}"
|
|
||||||
path: "${{ env.PACKAGE_BASE_DIR }}/debug/"
|
|
||||||
if-no-files-found: 'error'
|
|
||||||
compression-level: 9
|
|
||||||
retention-days: 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: "${{ env.PACKAGE_BASE_DIR }}/**/*"
|
|
||||||
|
|
138
.github/workflows/emu-build-all-linux.yml
vendored
Normal file
138
.github/workflows/emu-build-all-linux.yml
vendored
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
name: Build all emu variants (Linux)
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
# needed since it allows this to become a reusable workflow
|
||||||
|
workflow_dispatch:
|
||||||
|
# allows manual trigger
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deps:
|
||||||
|
name: Restore or build deps
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-deps-linux.yml
|
||||||
|
|
||||||
|
emu-regular-x32-release:
|
||||||
|
name: Regular x32 (release)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: regular
|
||||||
|
x32: true
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
emu-regular-x32-debug:
|
||||||
|
name: Regular x32 (debug)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: regular
|
||||||
|
x32: true
|
||||||
|
debug: true
|
||||||
|
|
||||||
|
emu-exp-x32-release:
|
||||||
|
name: Experimental x32 (release)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: exp
|
||||||
|
x32: true
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
emu-exp-x32-debug:
|
||||||
|
name: Experimental x32 (debug)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: exp
|
||||||
|
x32: true
|
||||||
|
debug: true
|
||||||
|
|
||||||
|
tools-x32-release:
|
||||||
|
name: Tools x32 (release)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: tools
|
||||||
|
x32: true
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
tools-x32-debug:
|
||||||
|
name: Tools x32 (debug)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: tools
|
||||||
|
x32: true
|
||||||
|
debug: true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
emu-regular-x64-release:
|
||||||
|
name: Regular x64 (release)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: regular
|
||||||
|
x32: false
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
emu-regular-x64-debug:
|
||||||
|
name: Regular x64 (debug)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: regular
|
||||||
|
x32: false
|
||||||
|
debug: true
|
||||||
|
|
||||||
|
emu-exp-x64-release:
|
||||||
|
name: Experimental x64 (release)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: exp
|
||||||
|
x32: false
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
emu-exp-x64-debug:
|
||||||
|
name: Experimental x64 (debug)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: exp
|
||||||
|
x32: false
|
||||||
|
debug: true
|
||||||
|
|
||||||
|
tools-x64-release:
|
||||||
|
name: Tools x64 (release)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: tools
|
||||||
|
x32: false
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
tools-x64-debug:
|
||||||
|
name: Tools x64 (debug)
|
||||||
|
needs: [ deps ]
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-variant-linux.yml
|
||||||
|
with:
|
||||||
|
emu-variant: tools
|
||||||
|
x32: false
|
||||||
|
debug: true
|
@ -13,13 +13,13 @@ jobs:
|
|||||||
deps:
|
deps:
|
||||||
name: Restore or build deps
|
name: Restore or build deps
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/deps-win.yml
|
uses: ./.github/workflows/emu-deps-win.yml
|
||||||
|
|
||||||
emu-regular-x32-release:
|
emu-regular-x32-release:
|
||||||
name: Regular x32 (release)
|
name: Regular x32 (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: regular
|
emu-variant: regular
|
||||||
x32: true
|
x32: true
|
||||||
@ -29,7 +29,7 @@ jobs:
|
|||||||
name: Regular x32 (debug)
|
name: Regular x32 (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: regular
|
emu-variant: regular
|
||||||
x32: true
|
x32: true
|
||||||
@ -39,7 +39,7 @@ jobs:
|
|||||||
name: Experimental x32 (release)
|
name: Experimental x32 (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: exp
|
emu-variant: exp
|
||||||
x32: true
|
x32: true
|
||||||
@ -49,7 +49,7 @@ jobs:
|
|||||||
name: Experimental x32 (debug)
|
name: Experimental x32 (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: exp
|
emu-variant: exp
|
||||||
x32: true
|
x32: true
|
||||||
@ -59,7 +59,7 @@ jobs:
|
|||||||
name: Client x32 (release)
|
name: Client x32 (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: client
|
emu-variant: client
|
||||||
x32: true
|
x32: true
|
||||||
@ -69,7 +69,7 @@ jobs:
|
|||||||
name: Client x32 (debug)
|
name: Client x32 (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: client
|
emu-variant: client
|
||||||
x32: true
|
x32: true
|
||||||
@ -81,7 +81,7 @@ jobs:
|
|||||||
name: Regular x64 (release)
|
name: Regular x64 (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: regular
|
emu-variant: regular
|
||||||
x32: false
|
x32: false
|
||||||
@ -91,7 +91,7 @@ jobs:
|
|||||||
name: Regular x64 (debug)
|
name: Regular x64 (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: regular
|
emu-variant: regular
|
||||||
x32: false
|
x32: false
|
||||||
@ -101,7 +101,7 @@ jobs:
|
|||||||
name: Experimental x64 (release)
|
name: Experimental x64 (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: exp
|
emu-variant: exp
|
||||||
x32: false
|
x32: false
|
||||||
@ -111,7 +111,7 @@ jobs:
|
|||||||
name: Experimental x64 (debug)
|
name: Experimental x64 (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: exp
|
emu-variant: exp
|
||||||
x32: false
|
x32: false
|
||||||
@ -121,7 +121,7 @@ jobs:
|
|||||||
name: Client x64 (release)
|
name: Client x64 (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: client
|
emu-variant: client
|
||||||
x32: false
|
x32: false
|
||||||
@ -131,7 +131,7 @@ jobs:
|
|||||||
name: Client x64 (debug)
|
name: Client x64 (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: client
|
emu-variant: client
|
||||||
x32: false
|
x32: false
|
||||||
@ -143,7 +143,7 @@ jobs:
|
|||||||
name: Tools (release)
|
name: Tools (release)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: tools
|
emu-variant: tools
|
||||||
debug: false
|
debug: false
|
||||||
@ -152,7 +152,7 @@ jobs:
|
|||||||
name: Tools (debug)
|
name: Tools (debug)
|
||||||
needs: [ deps ]
|
needs: [ deps ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-variant-win.yml
|
uses: ./.github/workflows/emu-build-variant-win.yml
|
||||||
with:
|
with:
|
||||||
emu-variant: tools
|
emu-variant: tools
|
||||||
debug: true
|
debug: true
|
127
.github/workflows/emu-build-variant-linux.yml
vendored
Normal file
127
.github/workflows/emu-build-variant-linux.yml
vendored
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
name: Build emu variant (Linux)
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
emu-variant:
|
||||||
|
description: |
|
||||||
|
Which variant of the emu to build:
|
||||||
|
regular: build the regular version of the emu
|
||||||
|
exp: build the experimental version of the emu
|
||||||
|
tools: build the tools only
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
x32:
|
||||||
|
description: |
|
||||||
|
build architecture
|
||||||
|
true: x32
|
||||||
|
false: x64
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
debug:
|
||||||
|
description: |
|
||||||
|
build mode
|
||||||
|
true: build in debug mode
|
||||||
|
false: build in release mode
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
DEPS_CACHE_KEY: emu-deps-linux
|
||||||
|
DEPS_CACHE_DIR: build/deps/linux
|
||||||
|
|
||||||
|
PACKAGE_BASE_DIR: "build/package/linux"
|
||||||
|
THIRD_PARTY_BASE_DIR: 'third-party'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
### setup build vars
|
||||||
|
- name: Setup build vars
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "env file = '$GITHUB_ENV'"
|
||||||
|
echo "workspace = '${{ github.workspace }}'"
|
||||||
|
|
||||||
|
arch=""
|
||||||
|
if [[ "${{ inputs.x32 }}" = "true" ]]; then
|
||||||
|
arch="32"
|
||||||
|
else
|
||||||
|
arch="64"
|
||||||
|
fi
|
||||||
|
echo "build_arch=$arch" >>"$GITHUB_ENV"
|
||||||
|
|
||||||
|
build_switches=""
|
||||||
|
if [[ "${{ inputs.emu-variant }}" = "regular" ]]; then
|
||||||
|
build_switches="+lib-$arch +client-$arch"
|
||||||
|
elif [[ "${{ inputs.emu-variant }}" = "exp" ]]; then
|
||||||
|
build_switches="+exp-lib-$arch +exp-client-$arch"
|
||||||
|
elif [[ "${{ inputs.emu-variant }}" = "tools" ]]; then
|
||||||
|
build_switches="+tool-clientldr +tool-itf-$arch +tool-lobby-$arch"
|
||||||
|
else
|
||||||
|
echo "[X] invalid emu variant '${{ inputs.emu-variant }}'" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "build_switches=$build_switches" >>"$GITHUB_ENV"
|
||||||
|
|
||||||
|
build_mode=""
|
||||||
|
if [[ "${{ inputs.debug }}" = "true" ]]; then
|
||||||
|
build_mode="debug"
|
||||||
|
else
|
||||||
|
build_mode="release"
|
||||||
|
fi
|
||||||
|
echo "build_mode=$build_mode" >>"$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Checkout branch
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
### deps
|
||||||
|
- name: Restore deps
|
||||||
|
id: emu-deps-cache-step
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
key: ${{ env.DEPS_CACHE_KEY }}
|
||||||
|
path: ${{ env.DEPS_CACHE_DIR }}
|
||||||
|
|
||||||
|
## mandatory Linux packages, installed via sudo apt install ...
|
||||||
|
- name: Install required packages
|
||||||
|
shell: bash
|
||||||
|
run: sudo chmod 777 build_linux_deps.sh && sudo ./build_linux_deps.sh -verbose -packages_only
|
||||||
|
|
||||||
|
## extra helpers/tools, these are not built inside the deps build dir
|
||||||
|
- name: Clone third-party build helpers (build/linux)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: 'third-party/build/linux'
|
||||||
|
path: "${{env.THIRD_PARTY_BASE_DIR}}/build/linux"
|
||||||
|
|
||||||
|
### fix folder permissions! not sure why this fails
|
||||||
|
# nested subdirs "build/linux/release" cause permission problems
|
||||||
|
- name: Give all permissions for repo folder
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ github.workspace }}
|
||||||
|
run: sudo chmod -R 777 "${{ github.workspace }}"
|
||||||
|
|
||||||
|
### build target(s)
|
||||||
|
- name: Build target(s)
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ github.workspace }}
|
||||||
|
run: "sudo chmod 777 build_linux.sh && ./build_linux.sh -verbose ${{ env.build_mode }} clean +build_str ${{ github.sha }} ${{ env.build_switches }}"
|
||||||
|
|
||||||
|
### upload artifact/package to github Actions (for targets)
|
||||||
|
- name: Upload build package (for targets)
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: "emu-linux-${{ inputs.emu-variant }}-${{ env.build_arch }}-${{ env.build_mode }}-${{ github.sha }}"
|
||||||
|
path: "build/linux/"
|
||||||
|
if-no-files-found: 'error'
|
||||||
|
compression-level: 9
|
||||||
|
retention-days: 1
|
@ -43,6 +43,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: windows-2022
|
runs-on: windows-2022
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
### setup build vars
|
### setup build vars
|
||||||
- name: Setup build vars
|
- name: Setup build vars
|
62
.github/workflows/emu-deps-linux.yml
vendored
Normal file
62
.github/workflows/emu-deps-linux.yml
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
name: Emu third-party dependencies (Linux)
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
# needed since it allows this to become a reusable workflow
|
||||||
|
workflow_dispatch:
|
||||||
|
# allows manual trigger
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
DEPS_CACHE_KEY: emu-deps-linux
|
||||||
|
DEPS_CACHE_DIR: build/deps/linux
|
||||||
|
|
||||||
|
PACKAGE_BASE_DIR: "build/package/linux"
|
||||||
|
THIRD_PARTY_BASE_DIR: 'third-party'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deps-build:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Lookup cache for deps
|
||||||
|
id: emu-deps-cache-step
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
key: ${{ env.DEPS_CACHE_KEY }}
|
||||||
|
path: ${{ env.DEPS_CACHE_DIR }}
|
||||||
|
|
||||||
|
# we need branch because it has build scripts
|
||||||
|
- name: Checkout branch
|
||||||
|
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Clone third-party deps (deps/linux)
|
||||||
|
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: 'third-party/deps/linux'
|
||||||
|
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/linux"
|
||||||
|
|
||||||
|
- name: Clone third-party deps (deps/common)
|
||||||
|
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: 'third-party/deps/common'
|
||||||
|
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/common"
|
||||||
|
|
||||||
|
### fix folder permissions! not sure why this fails
|
||||||
|
# nested subdirs "build/linux/release" cause permission problems
|
||||||
|
- name: Give all permissions for repo folder
|
||||||
|
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ github.workspace }}
|
||||||
|
run: sudo chmod -R 777 "${{ github.workspace }}"
|
||||||
|
|
||||||
|
- name: Build deps
|
||||||
|
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
|
||||||
|
shell: bash
|
||||||
|
run: sudo chmod 777 build_linux_deps.sh && sudo ./build_linux_deps.sh -verbose
|
@ -1,4 +1,4 @@
|
|||||||
name: Third-party dependencies (Windows)
|
name: Emu third-party dependencies (Windows)
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
@ -17,7 +17,6 @@ env:
|
|||||||
THIRD_PARTY_BASE_DIR: 'third-party'
|
THIRD_PARTY_BASE_DIR: 'third-party'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# this helps in manual runs, if build fails, then deps are saved
|
|
||||||
deps-build:
|
deps-build:
|
||||||
runs-on: windows-2022
|
runs-on: windows-2022
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
@ -1,4 +1,4 @@
|
|||||||
name: Emu pull request (Windows)
|
name: Emu pull request
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
@ -13,7 +13,7 @@ on:
|
|||||||
# tools
|
# tools
|
||||||
- 'tools/generate_emu_config/**'
|
- 'tools/generate_emu_config/**'
|
||||||
- 'tools/migrate_gse/**'
|
- 'tools/migrate_gse/**'
|
||||||
- 'tools/steamclient_loader/linux/**'
|
- 'tools/steamclient_loader/linux/**' # these are just scripts, not built
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@ -22,4 +22,9 @@ jobs:
|
|||||||
emu-win-all:
|
emu-win-all:
|
||||||
name: Emu win all
|
name: Emu win all
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-all-win.yml
|
uses: ./.github/workflows/emu-build-all-win.yml
|
||||||
|
|
||||||
|
emu-linux-all:
|
||||||
|
name: Emu linux all
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
uses: ./.github/workflows/emu-build-all-linux.yml
|
@ -1,4 +1,4 @@
|
|||||||
name: Emu final release (Windows)
|
name: Prepare release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@ -19,10 +19,10 @@ jobs:
|
|||||||
emu-win-all:
|
emu-win-all:
|
||||||
name: Emu win all
|
name: Emu win all
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
uses: ./.github/workflows/build-emu-all-win.yml
|
uses: ./.github/workflows/emu-build-all-win.yml
|
||||||
|
|
||||||
|
|
||||||
emu-win-dl:
|
emu-win-prep:
|
||||||
needs: [ emu-win-all ]
|
needs: [ emu-win-all ]
|
||||||
runs-on: windows-2022
|
runs-on: windows-2022
|
||||||
steps:
|
steps:
|
12
README.md
12
README.md
@ -223,15 +223,15 @@ Arguments you can pass to this script:
|
|||||||
|
|
||||||
>>>>>>>>> ___
|
>>>>>>>>> ___
|
||||||
|
|
||||||
* `+exp-lib-32`: build experimental 32-bit `libsteam_api.so`
|
* `+client-32`: build steam client 32-bit `steamclient.so`
|
||||||
* `+exp-lib-64`: build experimental 64-bit `libsteam_api.so`
|
* `+client-64`: build steam client 64-bit `steamclient.so`
|
||||||
* `+exp-client-32`: build experimental steam client 64-bit `steamclient.so`
|
|
||||||
* `+exp-client-64`: build experimental steam client 64-bit `steamclient.so`
|
|
||||||
|
|
||||||
>>>>>>>>> ___
|
>>>>>>>>> ___
|
||||||
|
|
||||||
* `+client-32`: build steam client 32-bit `steamclient.so`
|
* `+exp-lib-32`: build experimental 32-bit `libsteam_api.so`
|
||||||
* `+client-64`: build steam client 64-bit `steamclient.so`
|
* `+exp-lib-64`: build experimental 64-bit `libsteam_api.so`
|
||||||
|
* `+exp-client-32`: build experimental steam client 32-bit `steamclient.so`
|
||||||
|
* `+exp-client-64`: build experimental steam client 64-bit `steamclient.so`
|
||||||
|
|
||||||
>>>>>>>>> ___
|
>>>>>>>>> ___
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ for (( i=1; i<=$#; i++ )); do
|
|||||||
BUILD_TOOL_FIND_ITFS64=1
|
BUILD_TOOL_FIND_ITFS64=1
|
||||||
elif [[ "$var" = "+tool-lobby-32" ]]; then
|
elif [[ "$var" = "+tool-lobby-32" ]]; then
|
||||||
BUILD_TOOL_LOBBY32=1
|
BUILD_TOOL_LOBBY32=1
|
||||||
elif [[ "$var" = "vtool-lobby-64" ]]; then
|
elif [[ "$var" = "+tool-lobby-64" ]]; then
|
||||||
BUILD_TOOL_LOBBY64=1
|
BUILD_TOOL_LOBBY64=1
|
||||||
elif [[ "$var" = "+lib-netsockets-32" ]]; then
|
elif [[ "$var" = "+lib-netsockets-32" ]]; then
|
||||||
BUILD_LIB_NET_SOCKETS_32=1
|
BUILD_LIB_NET_SOCKETS_32=1
|
||||||
@ -664,6 +664,7 @@ cleanup
|
|||||||
# copy configs + examples
|
# copy configs + examples
|
||||||
if [[ $last_code = 0 ]]; then
|
if [[ $last_code = 0 ]]; then
|
||||||
echo "// copying readmes + files examples"
|
echo "// copying readmes + files examples"
|
||||||
|
mkdir -p "$build_root_dir/"
|
||||||
cp -f -r "post_build/steam_settings.EXAMPLE/" "$build_root_dir/"
|
cp -f -r "post_build/steam_settings.EXAMPLE/" "$build_root_dir/"
|
||||||
cp -f "post_build/README.release.md" "$build_root_dir/"
|
cp -f "post_build/README.release.md" "$build_root_dir/"
|
||||||
cp -f "CHANGELOG.md" "$build_root_dir/"
|
cp -f "CHANGELOG.md" "$build_root_dir/"
|
||||||
@ -671,9 +672,11 @@ if [[ $last_code = 0 ]]; then
|
|||||||
cp -f "post_build/README.debug.md" "$build_root_dir/"
|
cp -f "post_build/README.debug.md" "$build_root_dir/"
|
||||||
fi
|
fi
|
||||||
if [[ -d "$build_root_tools/find_interfaces" ]]; then
|
if [[ -d "$build_root_tools/find_interfaces" ]]; then
|
||||||
|
mkdir -p "$build_root_tools/find_interfaces/"
|
||||||
cp -f "post_build/README.find_interfaces.md" "$build_root_tools/find_interfaces/"
|
cp -f "post_build/README.find_interfaces.md" "$build_root_tools/find_interfaces/"
|
||||||
fi
|
fi
|
||||||
if [[ -d "$build_root_tools/lobby_connect" ]]; then
|
if [[ -d "$build_root_tools/lobby_connect" ]]; then
|
||||||
|
mkdir -p "$build_root_tools/lobby_connect/"
|
||||||
cp -f "post_build/README.lobby_connect.md" "$build_root_tools/lobby_connect/"
|
cp -f "post_build/README.lobby_connect.md" "$build_root_tools/lobby_connect/"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user