• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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