# Concurrency policy: this job pushes one fixed tag, so only the newest build # matters. A running build is never cancelled (cancel-in-progress is false); # GitHub keeps at most one pending run per group and replaces an older pending # run with a newer one. Push and workflow_dispatch use separate groups, so a # manual run is never replaced by a push. name: 'generate and publish intel docker caches' on: workflow_dispatch: push: branches: - master concurrency: group: intel-cache-${{ github.event_name }}-${{ github.repository }} cancel-in-progress: false jobs: generate_caches: if: github.repository == 'mudler/LocalAI' strategy: matrix: include: - base-image: intel/oneapi-basekit:2025.3.2-0-devel-ubuntu24.04 runs-on: 'arc-runner-set' platforms: 'linux/amd64' runs-on: ${{matrix.runs-on}} steps: - name: Set up QEMU uses: docker/setup-qemu-action@master with: platforms: all - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Login to quay if: github.event_name != 'pull_request' uses: docker/login-action@v4 with: registry: quay.io username: ${{ secrets.LOCALAI_REGISTRY_USERNAME }} password: ${{ secrets.LOCALAI_REGISTRY_PASSWORD }} - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@master - name: Checkout uses: actions/checkout@v7 - name: Cache Intel images uses: docker/build-push-action@v7 with: builder: ${{ steps.buildx.outputs.name }} build-args: | BASE_IMAGE=${{ matrix.base-image }} context: . file: ./Dockerfile tags: quay.io/go-skynet/intel-oneapi-base:24.04 push: true target: intel platforms: ${{ matrix.platforms }}