You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
name: Docker CI
|
|
on: push
|
|
env:
|
|
DOCKER_BUILDKIT: 1
|
|
jobs:
|
|
build:
|
|
name: Build
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Build dockerpi:vm
|
|
run: docker build -t lukechilds/dockerpi:vm --target dockerpi-vm .
|
|
- name: Build dockerpi
|
|
run: docker build -t lukechilds/dockerpi:latest --target dockerpi .
|
|
- name: Log image data
|
|
run: docker images lukechilds/dockerpi
|
|
- name: Save image tarballs
|
|
run: |
|
|
mkdir -p images
|
|
images=$(docker images lukechilds/dockerpi --format "{{.Repository}}:{{.Tag}}")
|
|
for image in $images; do
|
|
docker save $image | gzip > "images/$(echo $image | tr '/' '-' | tr ':' '-').tgz"
|
|
done
|
|
- name: Print sha256sum of built image
|
|
run: sha256sum images/*
|
|
- name: Upload image tarballs
|
|
uses: actions/upload-artifact@v1.0.0
|
|
with:
|
|
name: images
|
|
path: images/
|
|
publish:
|
|
name: Publish
|
|
if: github.ref == 'refs/heads/master'
|
|
runs-on: ubuntu-18.04
|
|
needs: build
|
|
steps:
|
|
- name: Download image tarballs
|
|
uses: actions/download-artifact@v1.0.0
|
|
with:
|
|
name: images
|
|
- name: Print sha256sum of all images
|
|
run: sha256sum images/*
|
|
- name: Load image tarballs
|
|
run: for image in images/*; do docker load -i $image; done
|
|
- name: Log image data
|
|
run: docker images lukechilds/dockerpi
|
|
- name: Login to Docker Hub
|
|
run: echo "${{secrets.DOCKER_TOKEN}}" | docker login -u=lukechilds --password-stdin
|
|
- name: Push to Docker Hub
|
|
run: docker push lukechilds/dockerpi
|
|
|