From 1b112c7fef70061264eadb80a3c90e8961858253 Mon Sep 17 00:00:00 2001 From: Emmanuel Gautier Date: Sun, 23 Jun 2024 12:09:20 +0200 Subject: [PATCH] ci: setup ci docker build and push --- .github/workflows/ci.yml | 55 +++++++++++++++++++ .../fastapi/{pip => fastapi-pip}/.gitignore | 0 .../fastapi/{pip => fastapi-pip}/Dockerfile | 0 python/fastapi/{pip => fastapi-pip}/README.md | 0 .../fastapi/{pip => fastapi-pip}/app/main.py | 0 .../{pip => fastapi-pip}/requirements.txt | 0 .../{poetry => fastapi-poetry}/.gitignore | 0 .../{poetry => fastapi-poetry}/Dockerfile | 0 .../{poetry => fastapi-poetry}/README.md | 0 9 files changed, 55 insertions(+) create mode 100644 .github/workflows/ci.yml rename python/fastapi/{pip => fastapi-pip}/.gitignore (100%) rename python/fastapi/{pip => fastapi-pip}/Dockerfile (100%) rename python/fastapi/{pip => fastapi-pip}/README.md (100%) rename python/fastapi/{pip => fastapi-pip}/app/main.py (100%) rename python/fastapi/{pip => fastapi-pip}/requirements.txt (100%) rename python/fastapi/{poetry => fastapi-poetry}/.gitignore (100%) rename python/fastapi/{poetry => fastapi-poetry}/Dockerfile (100%) rename python/fastapi/{poetry => fastapi-poetry}/README.md (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d402639 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + list-dockerfiles: + runs-on: ubuntu-latest + + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + + steps: + - uses: actions/checkout@v4 + + - id: set-matrix + run: echo "matrix=$(find . -type f -name 'Dockerfile' -exec dirname {} \; | sed 's|^\./||' | awk -F'/' '{print $NF}' | sort -u)" >> $GITHUB_OUTPUT + + docker-build: + needs: list-dockerfiles + runs-on: ubuntu-latest + + permissions: + packages: write + + strategy: + matrix: + dockerfile: ${{ fromJson(needs.list-dockerfiles.outputs.matrix) }} + + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: ./examples/${{ matrix.dockerfile }} + push: ${{ github.ref == 'refs/heads/main' }} + tags: ghcr.io/cerberauth/openid-connect-examples/${{ matrix.dockerfile }}:latest + cache-from: type=registry,ref=ghcr.io/cerberauth/openid-connect-examples/${{ matrix.dockerfile }}:latest + cache-to: type=inline diff --git a/python/fastapi/pip/.gitignore b/python/fastapi/fastapi-pip/.gitignore similarity index 100% rename from python/fastapi/pip/.gitignore rename to python/fastapi/fastapi-pip/.gitignore diff --git a/python/fastapi/pip/Dockerfile b/python/fastapi/fastapi-pip/Dockerfile similarity index 100% rename from python/fastapi/pip/Dockerfile rename to python/fastapi/fastapi-pip/Dockerfile diff --git a/python/fastapi/pip/README.md b/python/fastapi/fastapi-pip/README.md similarity index 100% rename from python/fastapi/pip/README.md rename to python/fastapi/fastapi-pip/README.md diff --git a/python/fastapi/pip/app/main.py b/python/fastapi/fastapi-pip/app/main.py similarity index 100% rename from python/fastapi/pip/app/main.py rename to python/fastapi/fastapi-pip/app/main.py diff --git a/python/fastapi/pip/requirements.txt b/python/fastapi/fastapi-pip/requirements.txt similarity index 100% rename from python/fastapi/pip/requirements.txt rename to python/fastapi/fastapi-pip/requirements.txt diff --git a/python/fastapi/poetry/.gitignore b/python/fastapi/fastapi-poetry/.gitignore similarity index 100% rename from python/fastapi/poetry/.gitignore rename to python/fastapi/fastapi-poetry/.gitignore diff --git a/python/fastapi/poetry/Dockerfile b/python/fastapi/fastapi-poetry/Dockerfile similarity index 100% rename from python/fastapi/poetry/Dockerfile rename to python/fastapi/fastapi-poetry/Dockerfile diff --git a/python/fastapi/poetry/README.md b/python/fastapi/fastapi-poetry/README.md similarity index 100% rename from python/fastapi/poetry/README.md rename to python/fastapi/fastapi-poetry/README.md