--- name: "Cache" on: workflow_call: jobs: molecule: name: cache runs-on: self-hosted env: PYTHON_VERSION: "3.11" steps: - name: Check out the codebase uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # 5.3.0 with: python-version: ${{ env.PYTHON_VERSION }} cache: 'pip' # caching pip dependencies - name: Cache Vagrant boxes id: cache-vagrant uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # 4.1.0 with: lookup-only: true #if it exists, we don't need to restore and can skip the next step path: | ~/.vagrant.d/boxes key: vagrant-boxes-${{ hashFiles('**/molecule.yml') }} restore-keys: | vagrant-boxes - name: Download Vagrant boxes for all scenarios # To save some cache space, all scenarios share the same cache key. # On the other hand, this means that the cache contents should be # the same across all scenarios. This step ensures that. if: steps.cache-vagrant.outputs.cache-hit != 'true' # only run if false since this is just a cache step run: | ./.github/download-boxes.sh vagrant box list