name: Publish Build Artifacts on: push jobs: publish_images: # Optionally publish container images, guarded by the GitHub secret # QUAY_PUBLISH. # To set this up, sign up for quay.io (you can connect it to your github) # then create a robot user with write access user called "bcc_buildbot", # and add the secret token for it to GitHub secrets as: # - QUAY_TOKEN = name: Publish to quay.io runs-on: ubuntu-latest strategy: matrix: env: - NAME: bionic-release OS_RELEASE: 18.04 - NAME: focal-release OS_RELEASE: 20.04 steps: - uses: actions/checkout@v1 - name: Initialize workflow variables id: vars shell: bash run: | if [ -n "${QUAY_TOKEN}" ];then echo "Quay token is set, will push an image" echo ::set-output name=QUAY_PUBLISH::true else echo "Quay token not set, skipping" fi env: QUAY_TOKEN: ${{ secrets.QUAY_TOKEN }} - name: Authenticate with quay.io docker registry if: > steps.vars.outputs.QUAY_PUBLISH env: QUAY_TOKEN: ${{ secrets.QUAY_TOKEN }} run: ./scripts/docker/auth.sh ${{ github.repository }} - name: Package docker image and push to quay.io if: > steps.vars.outputs.QUAY_PUBLISH run: > ./scripts/docker/push.sh ${{ github.repository }} ${{ github.ref }} ${{ github.sha }} ${{ matrix.env['NAME'] }} ${{ matrix.env['OS_RELEASE'] }} # Uploads the packages built in docker to the github build as an artifact for convenience - uses: actions/upload-artifact@v1 if: > steps.vars.outputs.QUAY_PUBLISH with: name: ${{ matrix.env['NAME'] }} path: output # Optionally publish container images to custom docker repository, # guarded by presence of all required github secrets. # GitHub secrets can be configured as follows: # - DOCKER_IMAGE = docker.io/myorg/bcc # - DOCKER_USERNAME = username # - DOCKER_PASSWORD = password publish_dockerhub: name: Publish To Dockerhub runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Initialize workflow variables id: vars shell: bash run: | if [ -n "${DOCKER_IMAGE}" ] && \ [ -n "${DOCKER_USERNAME}" ] && \ [ -n "${DOCKER_PASSWORD}" ];then echo "Custom docker credentials set, will push an image" echo ::set-output name=DOCKER_PUBLISH::true else echo "Custom docker credentials not, skipping" fi env: DOCKER_IMAGE: ${{ secrets.DOCKER_IMAGE }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - name: Build container image and publish to registry id: publish-registry uses: elgohr/Publish-Docker-Github-Action@2.8 if: ${{ steps.vars.outputs.DOCKER_PUBLISH }} with: name: ${{ secrets.DOCKER_IMAGE }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} workdir: . dockerfile: Dockerfile.ubuntu snapshot: true cache: ${{ github.event_name != 'schedule' }}