Some checks failed
Build and Push Docker Images / build-and-push (push) Failing after 44s
76 lines
2.6 KiB
YAML
76 lines
2.6 KiB
YAML
name: Build and Push Docker Images
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*.*.*'
|
|
|
|
env:
|
|
REGISTRY: registry.bouvais.lu
|
|
BASE_IMAGE_NAME: tenant/base
|
|
JUPYTER_IMAGE_NAME: tenant/jupyter
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Log in to the Container registry
|
|
run: |
|
|
docker login ${{ env.REGISTRY }} \
|
|
--username adrien \
|
|
--password "${{ secrets.DOCKER_PASSWORD }}"
|
|
|
|
# --- 1. BUILD & TEST BASE IMAGE ---
|
|
- name: Build Base image
|
|
run: |
|
|
docker build \
|
|
-f ./images/base/dockerfile \
|
|
-t ${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:${{ github.ref_name }} \
|
|
./images/base
|
|
|
|
- name: Test Base image
|
|
run: |
|
|
cid=$(docker create -u root -w /tests ${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:${{ github.ref_name }} sleep 60)
|
|
docker start "$cid"
|
|
docker cp ${{ github.workspace }}/tests/. "$cid":/tests
|
|
docker exec "$cid" python3 /tests/base.py
|
|
docker rm -f "$cid"
|
|
|
|
- name: Tag Base image as latest
|
|
run: |
|
|
docker tag ${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:${{ github.ref_name }} \
|
|
${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:latest
|
|
|
|
# --- 2. BUILD & TEST JUPYTER IMAGE ---
|
|
- name: Build Jupyter image
|
|
run: |
|
|
docker build \
|
|
-f ./images/jupyter/dockerfile \
|
|
--build-arg BASE_IMAGE=${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:${{ github.ref_name }} \
|
|
-t ${{ env.REGISTRY }}/${{ env.JUPYTER_IMAGE_NAME }}:${{ github.ref_name }} \
|
|
./images/jupyter
|
|
|
|
- name: Test Jupyter dependencies
|
|
run: |
|
|
cid=$(docker create -w /tests ${{ env.REGISTRY }}/${{ env.JUPYTER_IMAGE_NAME }}:${{ github.ref_name }} sleep 60)
|
|
docker start "$cid"
|
|
docker cp ${{ github.workspace }}/tests/. "$cid":/tests
|
|
docker exec "$cid" python3 /tests/dependencies.py
|
|
docker rm -f "$cid"
|
|
|
|
- name: Tag Jupyter image as latest
|
|
run: |
|
|
docker tag ${{ env.REGISTRY }}/${{ env.JUPYTER_IMAGE_NAME }}:${{ github.ref_name }} \
|
|
${{ env.REGISTRY }}/${{ env.JUPYTER_IMAGE_NAME }}:latest
|
|
|
|
- name: Push images
|
|
run: |
|
|
docker push ${{ env.REGISTRY }}/${{ env.JUPYTER_IMAGE_NAME }}:${{ github.ref_name }}
|
|
docker push ${{ env.REGISTRY }}/${{ env.JUPYTER_IMAGE_NAME }}:latest
|
|
docker push ${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:${{ github.ref_name }}
|
|
docker push ${{ env.REGISTRY }}/${{ env.BASE_IMAGE_NAME }}:latest
|