--- 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@d632683dd7b4114ad314bca15554477dd762a938 # 4.2.0 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # 5.2.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