1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
name: Containerization
on:
push:
branches: [ master, maint/* ]
pull_request:
branches: [ master, maint/* ]
jobs:
build_containers:
strategy:
matrix:
container:
- { name: xenial, base: 'ubuntu:xenial' }
- { name: bionic, base: 'ubuntu:bionic' }
env:
docker-config-path: azure-pipelines/docker
name: Build docker image
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Calculate image label
run: |
echo "::set-env name=docker-label::test2-$(git log -1 --pretty=format:"%h" -- ${{ env.docker-config-path }})"
- name: Log in to GitHub Packages
run: |
docker login https://docker.pkg.github.com -u ${{github.actor}} -p ${{github.token}}
- name: Download image
run: |
docker pull docker.pkg.github.com/${{ github.repository }}/${{ matrix.container.name }}:${{ env.docker-label }} || echo "::set-env name=docker-exists::true"
- name: Build image
run: |
docker build -t docker.pkg.github.com/${{ github.repository }}/${{ matrix.container.name }}:${{ env.docker-label }} --build-arg BASE=${{ matrix.container.base }} -f ${{ matrix.container.name }} .
working-directory: ${{ env.docker-config-path }}
if: ${{env.docker-exists != true}}
- name: Publish image
run: |
docker push docker.pkg.github.com/${{ github.repository }}/${{ matrix.container.name }}:${{ env.docker-label }}
if: ${{env.docker-exists != true}}