Skip to content

GHA: Adds hashFiles() to cache key #17

GHA: Adds hashFiles() to cache key

GHA: Adds hashFiles() to cache key #17

---
name: Platform (Linux)
env:
ARTIFACT_NAME: ${{ inputs.artifact_name || 'platform' }}
ARTIFACT_OVERWRITE: ${{ inputs.artifact_overwrite || false }}
CACHE: ${{ inputs.cache || true }}
CHECKOUT_REF: ${{ inputs.ref || 'dev' }}
CLEANUP: ${{ inputs.cleanup || true }}
REPOSITORY: EA31337/EA-Tester
VERSION: ${{ inputs.version || 5 }}
# yamllint disable-line rule:truthy
on:
pull_request:
paths:
- '.github/workflows/platform-linux.yml'
push:
branches:
- 'master'
- '*dev*'
paths:
- '.github/workflows/platform-linux.yml'
workflow_call:
inputs:
artifact_name:
default: platform
description: Artifact name.
required: false
type: string
artifact_overwrite:
default: false
description: Whether to overwrite artifact.
required: false
type: boolean
cache:
default: true
description: Whether to use cache.
required: false
type: boolean
cleanup:
default: false
description: Whether to run clean-up job.
required: false
type: boolean
ref:
default: dev
description: The branch, tag or SHA to checkout.
required: false
type: string
version:
default: 5
description: Version to install.
type: number
jobs:
platform-linux:
name: Platform
outputs:
workdir: ${{ github.workspace }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.CHECKOUT_REF }}
repository: ${{ env.REPOSITORY }}
- id: cache-mt
if: env.CACHE
uses: actions/cache@v4
with:
path: |
/etc/ansible/facts.d
~/.wine/drive_c
key: ${{ env.ARTIFACT_NAME }}/${{ env.CHECKOUT_REF }}/${{ env.VERSION }}/${{ hashFiles('/etc/ansible/facts.d') }}
- if: steps.cache-mt.outputs.cache-hit != 'true'
name: Runs playbook
uses: dawidd6/action-ansible-playbook@v2
with:
configuration: |
[defaults]
nocows = false
stdout_callback = yaml
directory: ansible
options: |
--connection local
--inventory localhost,
--verbose
playbook: install-mt${{ env.VERSION }}.yml
requirements: galaxy-requirements.yml
- uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: |
~/.wine/drive_c/Program Files*/**/*MT*
~/.wine/drive_c/Program Files*/**/*Meta*
overwrite: ${{ env.ARTIFACT_OVERWRITE }}
timeout-minutes: 20
cleanup:
name: Clean-up
needs: [platform-linux]
runs-on: ubuntu-latest
steps:
- uses: geekyeggo/delete-artifact@v4
if: env.CLEANUP && github.repository == env.REPOSITORY
with:
name: ${{ env.ARTIFACT_NAME }}