mirror of https://github.com/BOINC/boinc.git
Merge pull request #5136 from AenBleidd/vko_osx_ci_improvement
[OSX][CI] Refactor CI to decrease cache build time and avoid unnecessary cache invalidation
This commit is contained in:
commit
2e21ec5303
|
@ -17,12 +17,32 @@ env:
|
|||
AWS_DEFAULT_REGION: us-west-2
|
||||
|
||||
jobs:
|
||||
build-dependencies:
|
||||
name: build-dependencies
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: maxim-lobanov/setup-xcode@v1
|
||||
with:
|
||||
xcode-version: '14.2.0'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: 3rdParty/buildCache
|
||||
key: osx-${{ hashFiles('.github/workflows/osx.yml', '3rdParty/buildMacDependencies.sh', 'mac_build/dependencyNames.sh', 'mac_build/buildc-ares.sh', 'mac_build/buildcurl.sh', 'mac_build/buildfreetype.sh', 'mac_build/buildFTGL.sh', 'mac_build/buildopenssl.sh', 'mac_build/buildWxMac.sh') }}
|
||||
|
||||
- name: install dependencies
|
||||
run: ./3rdParty/buildMacDependencies.sh -q
|
||||
|
||||
build:
|
||||
name: ${{matrix.type}}-build
|
||||
runs-on: macos-latest
|
||||
needs: build-dependencies
|
||||
strategy:
|
||||
matrix:
|
||||
type: [manager, samples-makefile, libs-cmake]
|
||||
type: [manager, samples-makefile]
|
||||
fail-fast: false
|
||||
steps:
|
||||
- uses: maxim-lobanov/setup-xcode@v1
|
||||
|
@ -35,30 +55,12 @@ jobs:
|
|||
uses: actions/cache@v3
|
||||
with:
|
||||
path: 3rdParty/buildCache
|
||||
key: osx-${{ matrix.type }}-${{ hashFiles('3rdParty/*Mac*.sh', 'mac_build/setupForBOINC.sh', 'mac_build/dependencyNames.sh', 'mac_build/[bB]uild*.sh', '.github/workflows/osx.yml') }}
|
||||
|
||||
- name: Check if build is running from origin repo
|
||||
if: ${{ success() && env.AWS_ACCESS_KEY_ID != 0 && env.AWS_SECRET_ACCESS_KEY != 0 }}
|
||||
run: |
|
||||
echo "VCPKG_BINARY_SOURCES=clear;x-aws,s3://vcpkg.cache.boinc/,readwrite" >> $GITHUB_ENV
|
||||
|
||||
- name: Check if build is running from fork
|
||||
if: ${{ success() && (env.AWS_ACCESS_KEY_ID == 0 || env.AWS_SECRET_ACCESS_KEY == 0) }}
|
||||
run: |
|
||||
echo "VCPKG_BINARY_SOURCES=clear;x-aws-config,no-sign-request;x-aws,s3://vcpkg.cache.boinc/,read" >> $GITHUB_ENV
|
||||
|
||||
- name: install dependencies
|
||||
if: ${{! contains(matrix.type, 'cmake')}}
|
||||
run: ./3rdParty/buildMacDependencies.sh -q
|
||||
key: osx-${{ hashFiles('.github/workflows/osx.yml', '3rdParty/buildMacDependencies.sh', 'mac_build/dependencyNames.sh', 'mac_build/buildc-ares.sh', 'mac_build/buildcurl.sh', 'mac_build/buildfreetype.sh', 'mac_build/buildFTGL.sh', 'mac_build/buildopenssl.sh', 'mac_build/buildWxMac.sh') }}
|
||||
|
||||
- name: make manager
|
||||
if: success() && matrix.type == 'manager'
|
||||
run: ./mac_build/buildMacBOINC-CI.sh --no_shared_headers
|
||||
|
||||
- name: libs cmake
|
||||
if: matrix.type == 'libs-cmake'
|
||||
run: osx/ci_build_libs_cmake.sh
|
||||
|
||||
- name: make samples makefile
|
||||
if: matrix.type == 'samples-makefile'
|
||||
run: ./mac_build/buildMacMakefiles-CI.sh
|
||||
|
@ -73,3 +75,37 @@ jobs:
|
|||
with:
|
||||
name: osx_logs_${{ matrix.type }}_${{ github.event.pull_request.head.sha }}
|
||||
path: deploy/logs.7z
|
||||
|
||||
cmake-build:
|
||||
name: cmake-build
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: maxim-lobanov/setup-xcode@v1
|
||||
with:
|
||||
xcode-version: '14.2.0'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Check if build is running from origin repo
|
||||
if: ${{ success() && env.AWS_ACCESS_KEY_ID != 0 && env.AWS_SECRET_ACCESS_KEY != 0 }}
|
||||
run: |
|
||||
echo "VCPKG_BINARY_SOURCES=clear;x-aws,s3://vcpkg.cache.boinc/,readwrite" >> $GITHUB_ENV
|
||||
|
||||
- name: Check if build is running from fork
|
||||
if: ${{ success() && (env.AWS_ACCESS_KEY_ID == 0 || env.AWS_SECRET_ACCESS_KEY == 0) }}
|
||||
run: |
|
||||
echo "VCPKG_BINARY_SOURCES=clear;x-aws-config,no-sign-request;x-aws,s3://vcpkg.cache.boinc/,read" >> $GITHUB_ENV
|
||||
|
||||
- name: libs cmake
|
||||
run: osx/ci_build_libs_cmake.sh
|
||||
|
||||
- name: Prepare logs on failure
|
||||
if: ${{ failure() }}
|
||||
run: python3 ./deploy/prepare_deployment.py logs
|
||||
|
||||
- name: Upload logs on failure
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: osx_logs_cmake-build_${{ github.event.pull_request.head.sha }}
|
||||
path: deploy/logs.7z
|
||||
|
|
Loading…
Reference in New Issue