1name: Publish Build Artifacts 2 3on: 4 push: 5 branches: 6 - master 7 pull_request: 8 9permissions: 10 contents: read # to fetch code (actions/checkout) 11 12jobs: 13 # Optionally publish container images to custom docker repository, 14 # guarded by presence of all required github secrets. 15 # GitHub secrets can be configured as follows: 16 # - DOCKER_IMAGE = docker.io/myorg/bcc 17 # - DOCKER_USERNAME = username 18 # - DOCKER_PASSWORD = password 19 publish_dockerhub: 20 name: Publish To Dockerhub 21 runs-on: ubuntu-latest 22 steps: 23 24 - uses: actions/checkout@v1 25 26 - name: Initialize workflow variables 27 id: vars 28 shell: bash 29 run: | 30 if [ -n "${DOCKER_IMAGE}" ] && \ 31 [ -n "${DOCKER_USERNAME}" ] && \ 32 [ -n "${DOCKER_PASSWORD}" ];then 33 echo "Custom docker credentials set, will push an image" 34 echo ::set-output name=DOCKER_PUBLISH::true 35 else 36 echo "Custom docker credentials not, skipping" 37 fi 38 env: 39 DOCKER_IMAGE: ${{ secrets.DOCKER_IMAGE }} 40 DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} 41 DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 42 43 - name: Build container image and publish to registry 44 id: publish-registry 45 uses: elgohr/Publish-Docker-Github-Action@v5 46 if: ${{ steps.vars.outputs.DOCKER_PUBLISH }} 47 with: 48 name: ${{ secrets.DOCKER_IMAGE }} 49 username: ${{ secrets.DOCKER_USERNAME }} 50 password: ${{ secrets.DOCKER_PASSWORD }} 51 workdir: . 52 dockerfile: Dockerfile.ubuntu 53 snapshot: true 54 cache: ${{ github.event_name != 'schedule' }} 55