diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 4c47388..7fd8523 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -28,13 +28,28 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} - cache: 'pip' + + - name: Cache Poetry installation + uses: actions/cache@v4 + with: + path: ~/.local + key: poetry-${{ runner.os }}-${{ env.POETRY_VERSION }} - name: Install Poetry run: | curl -sSL https://install.python-poetry.org | python3 - echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: Cache Poetry dependencies + uses: actions/cache@v4 + with: + path: | + .venv + ~/.cache/pypoetry + key: poetry-deps-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/poetry.lock') }} + restore-keys: | + poetry-deps-${{ runner.os }}-${{ env.PYTHON_VERSION }}- + - name: Install dependencies run: | poetry config virtualenvs.in-project true @@ -64,6 +79,17 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + with: + buildkitd-flags: --debug + + - name: Cache Docker layers + uses: actions/cache@v4 + with: + path: /tmp/.buildx-cache + key: buildx-${{ matrix.component }}-${{ github.sha }} + restore-keys: | + buildx-${{ matrix.component }}- + buildx- - name: Log in to Container Registry uses: docker/login-action@v3 @@ -90,5 +116,14 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - cache-from: type=registry,ref=${{ vars.PACKAGES_REGISTRY }}/${{ env.IMAGE_NAME }}/${{ matrix.component }}:buildcache - cache-to: type=registry,ref=${{ vars.PACKAGES_REGISTRY }}/${{ env.IMAGE_NAME }}/${{ matrix.component }}:buildcache,mode=max + cache-from: | + type=local,src=/tmp/.buildx-cache + type=registry,ref=${{ vars.PACKAGES_REGISTRY }}/${{ env.IMAGE_NAME }}/${{ matrix.component }}:buildcache + cache-to: | + type=local,dest=/tmp/.buildx-cache-new,mode=max + type=registry,ref=${{ vars.PACKAGES_REGISTRY }}/${{ env.IMAGE_NAME }}/${{ matrix.component }}:buildcache,mode=max + + - name: Rotate Docker cache + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache || true