mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-09-23 04:55:47 +02:00
The `.git/modules` folder was not being initialized, which caused the post-cleanup of the `Checkout` step to flag an error at the end. Caching this folder and thus completely caching anything submodule related, should eliminate this warning. Also allowed submodules to be pulled in parallel when they aren't cached.
105 lines
3.4 KiB
YAML
105 lines
3.4 KiB
YAML
name: Linux Build
|
|
|
|
# Controls when the action will run. Triggers the workflow on push or pull request
|
|
# events but only for the master branch
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- .gitignore
|
|
- "**/*.md"
|
|
- .clang-format
|
|
- debian-packager/
|
|
- bin/PCSX2_keys.ini.default
|
|
- "plugins/LilyPad/**"
|
|
- .travis.yml # TODO - remove with travis-ci
|
|
- appveyor.yml # TODO - remove with appveyor
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- .gitignore
|
|
- "**/*.md"
|
|
- .clang-format
|
|
- debian-packager/
|
|
- bin/PCSX2_keys.ini.default
|
|
- "plugins/LilyPad/**"
|
|
- .travis.yml # TODO - remove with travis-ci
|
|
- appveyor.yml # TODO - remove with appveyor
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
# Prevent one build from failing everything (although maybe those should be included as experimental builds instead)
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04]
|
|
platform: [x86, x64]
|
|
experimental: [false]
|
|
|
|
name: ${{ matrix.os }}-${{ matrix.platform }}
|
|
runs-on: ${{ matrix.os }}
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
# Set some sort of timeout in the event of run-away builds. We are limited on concurrent jobs so, get rid of them.
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
# NOTE - useful for debugging
|
|
# - name: Dump GitHub context
|
|
# env:
|
|
# GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
# run: |
|
|
# echo "$GITHUB_CONTEXT"
|
|
# echo ${{ github.event.pull_request.title }}
|
|
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Cache Submodules
|
|
id: cache-submodules
|
|
uses: actions/cache@v2
|
|
with:
|
|
key: submodules-${{ hashFiles('./.gitmodules') }}
|
|
path: |
|
|
./3rdparty/xz
|
|
./3rdparty/gtest
|
|
./.git/modules/
|
|
|
|
- name: Checkout Submodules
|
|
if: steps.cache-submodules.outputs.cache-hit != 'true'
|
|
run: git submodule update --init --recursive --jobs 2
|
|
|
|
# -- SETUP CCACHE - https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/
|
|
- name: Prepare ccache timestamp
|
|
id: ccache_cache_timestamp
|
|
shell: cmake -P {0}
|
|
run: |
|
|
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
|
|
message("::set-output name=timestamp::${current_date}")
|
|
|
|
- name: ccache cache files
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: .ccache
|
|
key: ${{ matrix.os }}-${{ matrix.platform }}-${{ matrix.compiler }}-${{ matrix.compiler-version }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
|
|
restore-keys: |
|
|
${{ matrix.os }}-${{ matrix.platform }}-${{ matrix.compiler }}-${{ matrix.compiler-version }}-ccache-
|
|
|
|
- name: Install Packages
|
|
env:
|
|
PLATFORM: ${{ matrix.platform }}
|
|
# TODO - give the file executable permissions and commit it
|
|
run: |
|
|
chmod +x .github/workflows/scripts/build-linux.sh
|
|
./.github/workflows/scripts/build-linux.sh install_packages
|
|
|
|
- name: Build PCSX2
|
|
env:
|
|
PLATFORM: ${{ matrix.platform }}
|
|
# TODO - give the file executable permissions and commit it
|
|
run: |
|
|
chmod +x .github/workflows/scripts/build-linux.sh
|
|
./.github/workflows/scripts/build-linux.sh generate_cmake
|
|
./.github/workflows/scripts/build-linux.sh compile
|