name: "nvidia gpu supported images" on: push: tags: - 'v*' env: REGISTRY: ghcr.io IMAGE_NAME: m1k1o/neko TAG_PREFIX: nvidia- BASE_DOCKERFILE: Dockerfile.nvidia PLATFORMS: linux/amd64 jobs: build-base: runs-on: ubuntu-latest # # do not run on forks # if: github.repository_owner == 'm1k1o' steps: - name: Checkout uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Extract metadata (tags, labels) for Docker uses: docker/metadata-action@v3 id: meta with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.TAG_PREFIX }}base tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha,format=long - name: Log in to the Container registry uses: docker/login-action@v1 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GHCR_ACCESS_TOKEN }} - name: Build and push uses: docker/build-push-action@v2 with: context: ./ file: .docker/base/${{ env.BASE_DOCKERFILE }} platforms: ${{ env.PLATFORMS }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build: runs-on: ubuntu-latest # # do not run on forks # if: github.repository_owner == 'm1k1o' needs: [ build-base ] strategy: # Will build all images even if some fail. matrix: include: - tag: brave dockerfile: Dockerfile.nvidia - tag: google-chrome dockerfile: Dockerfile.nvidia env: TAG_NAME: ${{ matrix.tag }} DOCKERFILE: ${{ matrix.dockerfile }} steps: - name: Checkout uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Extract metadata (tags, labels) for Docker uses: docker/metadata-action@v3 id: meta with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.TAG_PREFIX }}${{ env.TAG_NAME }} tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha,format=long - name: Log in to the Container registry uses: docker/login-action@v1 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GHCR_ACCESS_TOKEN }} - name: Build and push uses: docker/build-push-action@v2 with: context: .docker/${{ env.TAG_NAME }} file: .docker/${{ env.TAG_NAME }}/${{ env.DOCKERFILE }} platforms: ${{ env.PLATFORMS }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | BASE_IMAGE=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.TAG_PREFIX }}base:sha-${{ github.sha }}