1 steps: 2 - name: Clone picolibc 3 uses: actions/checkout@v4 4 with: 5 path: picolibc 6 7 - name: Restore the Docker Image 8 uses: actions/cache@v4 9 with: 10 path: ${{ env.IMAGE_FILE }} 11 key: ${{ env.IMAGE_FILE }}-${{ hashFiles( env.DOCKERFILE, env.PACKAGES_FILE, env.EXTRA_FILE ) }} 12 fail-on-cache-miss: true 13 14 - name: Load and Check the Docker Image 15 run: | 16 docker load -i $IMAGE_FILE 17 docker images -a $IMAGE 18 19 # The docker image contains ccache, but the ccache action uses the ccache 20 # outside docker for statistics, so install the same ccache version. 21 # Install in /usr/bin so the ccache action gets the expected environment. 22 - name: install ccache 23 if: matrix.test == './.github/do-zephyr' 24 run: | 25 wget -nv https://github.com/ccache/ccache/releases/download/v4.8.2/ccache-4.8.2-linux-x86_64.tar.xz 26 sudo tar xf ccache-4.8.2-linux-x86_64.tar.xz -C /usr/bin --strip-components=1 --no-same-owner ccache-4.8.2-linux-x86_64/ccache 27 rm -f ccache-*-linux-x86_64.tar.xz 28 29 # Key on job name and cache size to get separate caches for linux 30 # and zephyr. 31 - name: ccache 32 if: matrix.test == './.github/do-zephyr' 33 uses: hendrikmuhs/ccache-action@v1.2.11 34 with: 35 key: compilation-${{ runner.os }}-${{ github.job }}-${{ matrix.meson_flags }}-${{ env.CCACHE_SIZE }} 36 max-size: ${{ env.CCACHE_SIZE }} 37 38