Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

cache miss

Offen
#200 8 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
docker, github-actions
Bereich
ci-cd, devops

Rechercherichtung

Beginne mit dem Schritt docker/build-push-action des pre-build-Jobs und vergleiche dessen cache-from/cache-to-Einstellungen mit dem an devcontainers/[email protected] übergebenen Wert cacheFrom. Untersuche die Logs beider devcontainer-Aufrufe und überprüfe, dass der erste Aufruf das gepushte Image oder den Cache wiederverwendet, anstatt es neu zu erstellen; als erledigt gilt dies, wenn der konfigurierte Cache konsistent verwendet wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Hoping to get some guidance 🙏
In my workflow I have a separate job that builds a test image in CI off of a base production image using docker's build-push action. That image then gets pushed to GCR and subsequent steps pull to run tests. I'm noticing that for the first devcontainer action it'll rebuild the container from scratch everytime, even though the cache is being stored in line. looking at the docker build command shows
Screenshot 2023-02-02 at 4 35 33 PM

Could someone point out where my configuration may be incorrect?

Here is my workflow, (i've omitted some steps that I don't believe to be related to the issue):

jobs:
  pre-build:
    runs-on: ubuntu-latest

    outputs:
      run_attempt: ${{ github.run_attempt }}
      
    env:
      SHA: ${{ github.event.pull_request.head.sha }}

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Get Short GitHub SHA
        run: echo "SHA7=${SHA::7}" >> $GITHUB_ENV

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      
      - name: Log in to GCR
        uses: docker/login-action@v2
        with: 
          registry: gcr.io
          username: _json_key
          password: ${{ env.SERVICE_KEY_FILE }}

      - name: Build and Push Docker Image
        uses: docker/build-push-action@v3
        with:
          context: "{{defaultContext}}:dbt"
          pull: true
          push: true
          tags: |
            ${{ env.IMAGE_NAME }}:${{ env.DATASET }}.gh-${{ github.run_id }}.${{ github.run_attempt }}
            ${{ env.IMAGE_NAME }}:${{ env.SHA7 }}
          cache-from: type=gha
          cache-to: type=gha,mode=max,type=inline
          provenance: false
          secrets: |
            GIT_AUTH_TOKEN=${{ secrets.GITHUB_TOKEN }}
  test:
    runs-on: ubuntu-latest
    needs: [ pre-build ]

    env:
      GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID_TEST }}
      TARGET: test
      
    steps:
      - name: Checkout
        uses: actions/checkout@v3     

      - name: Run git hooks
        uses: devcontainers/[email protected]
        env: 
          GOOGLE_APPLICATION_CREDENTIALS: /var/secrets/google/client_secrets.json
        with:
          cacheFrom: ${{ env.IMAGE_NAME }}:${{ env.DATASET }}.gh-${{ github.run_id }}.${{ github.run_attempt }}
          runCmd: |
              pre-commit run 

      - name: Run test
        uses: devcontainers/[email protected]
        env: 
          GOOGLE_APPLICATION_CREDENTIALS: /var/secrets/google/client_secrets.json
        with:
          cacheFrom: ${{ env.IMAGE_NAME }}:${{ env.DATASET }}.gh-${{ github.run_id }}.${{ github.run_attempt }}
          runCmd: |
              dbt test -m state:modified+ --defer --state .

The first devcontainer call:
Screenshot 2023-02-02 at 4 51 36 PM

The second devcontainer call:
Screenshot 2023-02-02 at 4 51 55 PM
it doesn't look like in the first instance of devcontainer the cache is being used?

The build and push step is successful:
Screenshot 2023-02-02 at 4 57 19 PM

Vorherrschende Sprache
TypeScript
Sterne
503
Forks
102
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus devcontainers/ci

Alle Issues in devcontainers/ci

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.