Files
pcsx2/.github/workflows/linux-workflow.yml
T
Tyler Wilding fe10f23994 ci: Resolve git-submodules related Actions warning
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.
2020-09-20 05:51:46 +02:00

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