attempt #1 to fix workflows

This commit is contained in:
otavepto 2024-05-31 12:24:38 +03:00
parent cfbeff9b1e
commit 989bbf8ed4
4 changed files with 60 additions and 30 deletions

View File

@ -10,6 +10,7 @@ permissions:
contents: write contents: write
env: env:
PREMAKE_ACTION: gmake2
DEPS_CACHE_KEY: emu-deps-linux DEPS_CACHE_KEY: emu-deps-linux
DEPS_CACHE_DIR: build/deps/linux DEPS_CACHE_DIR: build/deps/linux
@ -34,7 +35,7 @@ jobs:
matrix: matrix:
prj: [ prj: [
# regular api # regular api
'api_regular', 'steamclient_regular_linux', 'api_regular', 'steamclient_regular',
# api + client (experimental) # api + client (experimental)
'api_experimental', 'steamclient_experimental', 'api_experimental', 'steamclient_experimental',
# tools # tools
@ -54,13 +55,8 @@ jobs:
id: emu-deps-cache-step id: emu-deps-cache-step
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
key: ${{ env.DEPS_CACHE_KEY }} key: ${{ env.DEPS_CACHE_KEY }}-${{ env.PREMAKE_ACTION }}
path: ${{ env.DEPS_CACHE_DIR }} path: ${{ env.DEPS_CACHE_DIR }}/${{ env.PREMAKE_ACTION }}
## 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 ## extra helpers/tools, these are not built inside the deps build dir
- name: Clone third-party build helpers (common/linux) - name: Clone third-party build helpers (common/linux)
@ -82,9 +78,21 @@ jobs:
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: sudo chmod -R 777 "${{ github.workspace }}" run: sudo chmod -R 777 "${{ github.workspace }}"
### generate project files ## mandatory Linux packages
## TODO gen proto action is broken, always returns error = 1 - name: Install required packages
- name: Generate project files shell: bash
run: |
sudo apt install -y coreutils # echo, printf, etc...
sudo apt install -y build-essential
sudo apt install -y gcc-multilib # needed for 32-bit builds
sudo apt install -y g++-multilib
# sudo apt install -y clang
sudo apt install -y libglx-dev # needed for overlay build (header files such as GL/glx.h)
sudo apt install -y libgl-dev # needed for overlay build (header files such as GL/gl.h)
# sudo apt install -y binutils # (optional) contains the tool 'readelf' mainly, and other usefull binary stuff
### generate from .proto file
- name: Generate from .proto file
shell: bash shell: bash
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
@ -98,9 +106,9 @@ jobs:
working-directory: ${{ github.workspace }}/build/project/gmake2/linux working-directory: ${{ github.workspace }}/build/project/gmake2/linux
run: | run: |
echo "dry run..." echo "dry run..."
CC=clang CXX=clang++ make -n -j 2 config=${{ matrix.cfg }}_${{ matrix.arch }} ${{ matrix.prj }} make -n -j 2 config=${{ matrix.cfg }}_${{ matrix.arch }} ${{ matrix.prj }}
echo "actual run..." echo "actual run..."
CC=clang CXX=clang++ make -j 2 config=${{ matrix.cfg }}_${{ matrix.arch }} ${{ matrix.prj }} make -j 2 config=${{ matrix.cfg }}_${{ matrix.arch }} ${{ matrix.prj }}
### upload artifact/package to github Actions (for targets) ### upload artifact/package to github Actions (for targets)
- name: Upload build package (for targets) - name: Upload build package (for targets)

View File

@ -10,6 +10,7 @@ permissions:
contents: write contents: write
env: env:
PREMAKE_ACTION: vs2022
DEPS_CACHE_KEY: emu-deps-win DEPS_CACHE_KEY: emu-deps-win
DEPS_CACHE_DIR: build/deps/win DEPS_CACHE_DIR: build/deps/win
@ -34,11 +35,11 @@ jobs:
prj: [ prj: [
# regular api # regular api
'api_regular', 'api_regular',
# api + client (experimental) # (experimental) api + client
'api_experimental', 'steamclient_experimental_stub_win', 'api_experimental', 'steamclient_experimental_stub',
# client (experimental) + loader + extra dll + gameoverlaylib # client (experimental) + loader + extra dll + gameoverlaylib
'steamclient_experimental', 'steamclient_experimental_loader_win', 'steamclient_experimental', 'steamclient_experimental_loader',
'steamclient_experimental_extra_win', 'lib_game_overlay_renderer', 'steamclient_experimental_extra', 'lib_game_overlay_renderer',
# tools # tools
'tool_lobby_connect', 'tool_generate_interfaces', 'tool_lobby_connect', 'tool_generate_interfaces',
] ]
@ -68,8 +69,8 @@ jobs:
id: emu-deps-cache-step id: emu-deps-cache-step
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
key: ${{ env.DEPS_CACHE_KEY }} key: ${{ env.DEPS_CACHE_KEY }}-${{ env.PREMAKE_ACTION }}
path: ${{ env.DEPS_CACHE_DIR }} path: ${{ env.DEPS_CACHE_DIR }}/${{ env.PREMAKE_ACTION }}
## extra helpers/tools, these are not built inside the deps build dir ## extra helpers/tools, these are not built inside the deps build dir
- name: Clone third-party build helpers (common/win) - name: Clone third-party build helpers (common/win)
@ -84,14 +85,13 @@ jobs:
ref: 'third-party/build/win' ref: 'third-party/build/win'
path: "${{env.THIRD_PARTY_BASE_DIR}}/build/win" path: "${{env.THIRD_PARTY_BASE_DIR}}/build/win"
### generate project files ### generate from .proto file
## TODO gen proto action is broken, always returns error = 1 - name: Generate from .proto file
- name: Generate project files
shell: cmd shell: cmd
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --os=windows genproto "${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --os=windows genproto
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --emubuild=${{ github.sha }} --os=windows vs2022 "${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --emubuild=${{ github.sha }} --dosstub --winrsrc --winsign --os=windows vs2022
### build target(s) ### build target(s)
- name: Build target(s) - name: Build target(s)

View File

@ -10,6 +10,7 @@ permissions:
contents: write contents: write
env: env:
PREMAKE_ACTION: gmake2
DEPS_CACHE_KEY: emu-deps-linux DEPS_CACHE_KEY: emu-deps-linux
DEPS_CACHE_DIR: build/deps/linux DEPS_CACHE_DIR: build/deps/linux
@ -26,8 +27,8 @@ jobs:
id: emu-deps-cache-step id: emu-deps-cache-step
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
key: ${{ env.DEPS_CACHE_KEY }} key: ${{ env.DEPS_CACHE_KEY }}-${{ env.PREMAKE_ACTION }}
path: ${{ env.DEPS_CACHE_DIR }} path: ${{ env.DEPS_CACHE_DIR }}/${{ env.PREMAKE_ACTION }}
# we need branch because it has build scripts # we need branch because it has build scripts
- name: Checkout branch - name: Checkout branch
@ -56,7 +57,24 @@ jobs:
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: sudo chmod -R 777 "${{ github.workspace }}" run: sudo chmod -R 777 "${{ github.workspace }}"
## mandatory Linux packages
- name: Install required packages
shell: bash
run: |
sudo apt install -y coreutils # echo, printf, etc...
sudo apt install -y build-essential
sudo apt install -y gcc-multilib # needed for 32-bit builds
sudo apt install -y g++-multilib
# sudo apt install -y clang
sudo apt install -y libglx-dev # needed for overlay build (header files such as GL/glx.h)
sudo apt install -y libgl-dev # needed for overlay build (header files such as GL/gl.h)
# sudo apt install -y binutils # (optional) contains the tool 'readelf' mainly, and other usefull binary stuff
- name: Build deps - name: Build deps
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true' if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
shell: bash shell: bash
run: sudo chmod 777 build_linux_deps.sh && sudo ./build_linux_deps.sh -verbose working-directory: ${{ github.workspace }}
run: |
export CMAKE_GENERATOR="Unix Makefiles"
sudo chmod 777 ./${{env.THIRD_PARTY_BASE_DIR}}/common/linux/premake/premake5
./${{env.THIRD_PARTY_BASE_DIR}}/common/linux/premake/premake5 --file=premake5-deps.lua --64-build --32-build --all-ext --all-build --verbose --clean --os=linux gmake2

View File

@ -10,6 +10,7 @@ permissions:
contents: write contents: write
env: env:
PREMAKE_ACTION: vs2022
DEPS_CACHE_KEY: emu-deps-win DEPS_CACHE_KEY: emu-deps-win
DEPS_CACHE_DIR: build/deps/win DEPS_CACHE_DIR: build/deps/win
@ -35,8 +36,8 @@ jobs:
id: emu-deps-cache-step id: emu-deps-cache-step
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
key: ${{ env.DEPS_CACHE_KEY }} key: ${{ env.DEPS_CACHE_KEY }}-${{ env.PREMAKE_ACTION }}
path: ${{ env.DEPS_CACHE_DIR }} path: ${{ env.DEPS_CACHE_DIR }}/${{ env.PREMAKE_ACTION }}
lookup-only: true # don't restore cache if found lookup-only: true # don't restore cache if found
# we need branch because it has build scripts # we need branch because it has build scripts
@ -69,4 +70,7 @@ jobs:
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true' if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
shell: cmd shell: cmd
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: build_win_deps.bat -verbose run: |
build_win_deps.bat -verbose
set "CMAKE_GENERATOR=Visual Studio 17 2022"
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5-deps.lua --64-build --32-build --all-ext --all-build --verbose --clean --os=windows vs2022