name: ci on: schedule: - cron: '0 */4 * * *' # every 4 hours push: branches: - '**' tags: - 'v*.*.*' pull_request: env: DOCKER_IMAGE: localhost:5000/name/app jobs: multi-images: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2.3.3 - name: Docker meta uses: ./ with: images: | ${{ env.DOCKER_IMAGE }} ghcr.io/name/app tag-sha: true tag-schedule: runs-on: ubuntu-latest strategy: fail-fast: false matrix: tag-schedule: - "" - "cron-{{date 'YYYYMMDD'}}" - "{{date 'YYYYMMDD-HHmmss'}}" - "schedule" steps: - name: Checkout uses: actions/checkout@v2.3.3 - name: Docker meta uses: ./ with: images: | ${{ env.DOCKER_IMAGE }} ghcr.io/name/app tag-sha: true tag-schedule: ${{ matrix.tag-schedule }} coerce: runs-on: ubuntu-latest strategy: fail-fast: false matrix: tag-coerce-tag: - "{{raw}}" - "{{major}}.{{minor}}" - "{{patch}}" steps: - name: Checkout uses: actions/checkout@v2.3.3 - name: Docker meta uses: ./ with: images: | ${{ env.DOCKER_IMAGE }} ghcr.io/name/app tag-coerce-tag: ${{ matrix.tag-coerce-tag }} tag-sha: true docker-push: runs-on: ubuntu-latest services: registry: image: registry:2 ports: - 5000:5000 steps: - name: Checkout uses: actions/checkout@v2.3.3 - name: Docker meta id: docker_meta uses: ./ with: images: | ${{ env.DOCKER_IMAGE }} tag-sha: true - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 with: driver-opts: network=host - name: Build and push to local registry uses: docker/build-push-action@v2 with: context: ./test file: ./test/Dockerfile platforms: linux/amd64,linux/arm64,linux/386 push: true tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} - name: Inspect image run: | docker pull ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} docker image inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} - name: Check manifest run: | docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} - name: Dump context if: always() uses: crazy-max/ghaction-dump-context@v1