Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.2 to v2.3.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.2...a81bbbf8298c0fa03ea29cdc473d45769f953675) Signed-off-by: dependabot[bot] <support@github.com>
		
			
				
	
	
		
			104 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# This workflow is provided just as an usage example and not for repo testing/verification
 | 
						|
# See https://github.com/docker/build-push-action#complete-workflow
 | 
						|
name: example
 | 
						|
 | 
						|
on:
 | 
						|
  schedule:
 | 
						|
    - cron: '0 10 * * 0' # everyday sunday at 10am
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - '**'
 | 
						|
    tags:
 | 
						|
      - 'v*.*.*'
 | 
						|
  pull_request:
 | 
						|
 | 
						|
jobs:
 | 
						|
  docker:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    services:
 | 
						|
      registry:
 | 
						|
        image: registry:2
 | 
						|
        ports:
 | 
						|
          - 5000:5000
 | 
						|
    steps:
 | 
						|
      -
 | 
						|
        name: Checkout
 | 
						|
        uses: actions/checkout@v2.3.3
 | 
						|
      -
 | 
						|
        name: Prepare
 | 
						|
        id: prep
 | 
						|
        run: |
 | 
						|
          DOCKER_IMAGE=localhost:5000/name/app
 | 
						|
          VERSION=noop
 | 
						|
          if [ "${{ github.event_name }}" = "schedule" ]; then
 | 
						|
            VERSION=nightly
 | 
						|
          elif [[ $GITHUB_REF == refs/tags/* ]]; then
 | 
						|
            VERSION=${GITHUB_REF#refs/tags/}
 | 
						|
          elif [[ $GITHUB_REF == refs/heads/* ]]; then
 | 
						|
            VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g')
 | 
						|
            if [ "${{ github.event.repository.default_branch }}" = "$VERSION" ]; then
 | 
						|
              VERSION=edge
 | 
						|
            fi
 | 
						|
          elif [[ $GITHUB_REF == refs/pull/* ]]; then
 | 
						|
            VERSION=pr-${{ github.event.number }}
 | 
						|
          fi
 | 
						|
          TAGS="${DOCKER_IMAGE}:${VERSION}"
 | 
						|
          if [[ $VERSION =~ ^v[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
 | 
						|
            MINOR=${VERSION%.*}
 | 
						|
            MAJOR=${MINOR%.*}
 | 
						|
            TAGS="$TAGS,${DOCKER_IMAGE}:${MINOR},${DOCKER_IMAGE}:${MAJOR},${DOCKER_IMAGE}:latest"
 | 
						|
          elif [ "${{ github.event_name }}" = "push" ]; then
 | 
						|
            TAGS="$TAGS,${DOCKER_IMAGE}:sha-${GITHUB_SHA::8}"
 | 
						|
          fi
 | 
						|
          echo ::set-output name=version::${VERSION}
 | 
						|
          echo ::set-output name=tags::${TAGS}
 | 
						|
          echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
 | 
						|
      -
 | 
						|
        name: Set up Docker Buildx
 | 
						|
        uses: docker/setup-buildx-action@v1
 | 
						|
        with:
 | 
						|
          driver-opts: network=host
 | 
						|
      -
 | 
						|
        name: Build and export to Docker client
 | 
						|
        uses: ./
 | 
						|
        with:
 | 
						|
          context: ./test
 | 
						|
          file: ./test/Dockerfile
 | 
						|
          outputs: type=docker
 | 
						|
          tags: ${{ steps.prep.outputs.tags }}
 | 
						|
          labels: |
 | 
						|
            org.opencontainers.image.created=${{ steps.prep.outputs.created }}
 | 
						|
            org.opencontainers.image.url=${{ github.event.repository.html_url }}
 | 
						|
            org.opencontainers.image.source=${{ github.event.repository.clone_url }}
 | 
						|
            org.opencontainers.image.version=${{ steps.prep.outputs.version }}
 | 
						|
            org.opencontainers.image.revision=${{ github.sha }}
 | 
						|
            org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}
 | 
						|
      -
 | 
						|
        name: Build and push to local registry
 | 
						|
        uses: ./
 | 
						|
        with:
 | 
						|
          context: ./test
 | 
						|
          file: ./test/Dockerfile
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.prep.outputs.tags }}
 | 
						|
          labels: |
 | 
						|
            org.opencontainers.image.created=${{ steps.prep.outputs.created }}
 | 
						|
            org.opencontainers.image.url=${{ github.event.repository.html_url }}
 | 
						|
            org.opencontainers.image.source=${{ github.event.repository.clone_url }}
 | 
						|
            org.opencontainers.image.version=${{ steps.prep.outputs.version }}
 | 
						|
            org.opencontainers.image.revision=${{ github.sha }}
 | 
						|
            org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}
 | 
						|
      -
 | 
						|
        name: Inspect image
 | 
						|
        run: |
 | 
						|
          docker image inspect localhost:5000/name/app:${{ steps.prep.outputs.version }}
 | 
						|
      -
 | 
						|
        name: Check manifest
 | 
						|
        if: github.event_name != 'pull_request'
 | 
						|
        run: |
 | 
						|
          docker buildx imagetools inspect localhost:5000/name/app:${{ steps.prep.outputs.version }}
 | 
						|
      -
 | 
						|
        name: Dump context
 | 
						|
        if: always()
 | 
						|
        uses: crazy-max/ghaction-dump-context@v1
 |