|
|
|
name: 'CCache Setup'
|
|
|
|
description: 'Setup ccache for us in Windows CI'
|
|
|
|
inputs:
|
|
|
|
ccache-version:
|
|
|
|
required: false
|
|
|
|
default: '4.7.4'
|
|
|
|
description: A pinned version of ccache
|
|
|
|
type: string
|
|
|
|
|
|
|
|
runs:
|
|
|
|
using: 'composite'
|
|
|
|
steps:
|
|
|
|
- name: Setup MSVC
|
|
|
|
uses: ilammy/msvc-dev-cmd@cec98b9d092141f74527d0afa6feb2af698cfe89 # v1.12.1
|
|
|
|
with:
|
|
|
|
arch: x64
|
|
|
|
vsversion: '2019'
|
|
|
|
|
|
|
|
- name: Setup ccache path
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
echo "CCACHE_EXE_PATH=$LOCALAPPDATA\ccache-${{ inputs.ccache-version }}-windows-x86_64" >> $GITHUB_ENV
|
|
|
|
echo "$LOCALAPPDATA\ccache-${{ inputs.ccache-version }}-windows-x86_64" >> $GITHUB_PATH
|
|
|
|
|
|
|
|
- name: Add ccache to Powershell path
|
|
|
|
shell: pwsh
|
|
|
|
run: echo "%LOCALAPPDATA%\ccache-${{ inputs.ccache-version }}-windows-x86_64" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
|
|
|
|
|
|
- name: Setup caching of ccache download
|
|
|
|
if: ${{ github.event_name != 'pull_request' && github.event_name != 'pull_request_target' }}
|
|
|
|
id: ccache-cache
|
|
|
|
uses: actions/cache@627f0f41f6904a5b1efbaed9f96d9eb58e92e920 # v3.2.4
|
|
|
|
with:
|
|
|
|
path: ${{ env.CCACHE_EXE_PATH }}
|
|
|
|
key: ccache-exe-${{ inputs.ccache-version }}
|
|
|
|
|
|
|
|
- name: Restore ccache download
|
|
|
|
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target' }}
|
|
|
|
id: ccache-restore
|
|
|
|
uses: actions/cache/restore@627f0f41f6904a5b1efbaed9f96d9eb58e92e920 # v3.2.4
|
|
|
|
with:
|
|
|
|
path: ${{ env.CCACHE_EXE_PATH }}
|
|
|
|
key: ccache-exe-${{ inputs.ccache-version }}
|
|
|
|
|
|
|
|
- name: Download ccache
|
|
|
|
shell: bash
|
|
|
|
if: ${{ steps.ccache-cache.outputs.cache-hit != 'true' && steps.ccache-restore.outputs.cache-hit != 'true'}}
|
|
|
|
run: |
|
|
|
|
cd $LOCALAPPDATA
|
|
|
|
curl -kLSs "https://github.com/ccache/ccache/releases/download/v${{ inputs.ccache-version }}/ccache-${{ inputs.ccache-version }}-windows-x86_64.zip" -o ccache.zip
|
|
|
|
unzip ccache.zip
|
|
|
|
rm ccache.zip
|
|
|
|
ccache --version
|
|
|
|
|
|
|
|
- name: Configure ccache environment variables
|
|
|
|
shell: pwsh
|
|
|
|
run: |
|
|
|
|
Write-Host $Env:GITHUB_REF
|
|
|
|
$cllocation = (Get-Command cl.exe).Path
|
|
|
|
echo "CCACHE_COMPILER=$cllocation" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
|
|
echo "CCACHE_COMPILERTYPE=msvc" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
|
|
|
|
|
|
|
- name: Configure Windows-specific ccache environment variables
|
|
|
|
shell: bash
|
|
|
|
# Windows caches are about 2x larger than other platforms.
|
|
|
|
run: |
|
|
|
|
echo "CCACHE_COMPRESSLEVEL=10" >> $GITHUB_ENV
|
|
|
|
echo "CCACHE_MAXSIZE=200M" >> $GITHUB_ENV
|