diff --git a/.github/workflows/publish_docker.yaml b/.github/workflows/publish_docker.yaml new file mode 100644 index 0000000..c7fa93d --- /dev/null +++ b/.github/workflows/publish_docker.yaml @@ -0,0 +1,56 @@ +name: docker-publish-ghcr + +on: + workflow_dispatch: + push: + pull_request: + +permissions: + packages: write + +env: + PLATFORMS: linux/amd64,linux/arm64 + +jobs: + docker_build_and_publish: + runs-on: ubuntu-22.04 + steps: + - name: "Checkout backend(REST)" + uses: actions/checkout@v4 + with: + path: backend + fetch-depth: 0 + fetch-tags: 1 + + - name: "Set up QEMU" + # Add support for more platforms with QEMU (optional) + # https://github.com/docker/setup-qemu-action + uses: docker/setup-qemu-action@v3 + + - name: "Set up Docker buildx" + uses: docker/setup-buildx-action@v3 + + - name: "Login to GitHub Container Registry (ghcr.io)" + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{github.actor}} + password: ${{secrets.GITHUB_TOKEN}} + + - name: "Build and push to ghcr" + run: | + cd backend + + echo "Fix mess with tags in actions/checkout..." + git fetch -f && git fetch -f --tags + + export TAG=$(git describe HEAD | sed 's/-.*$//g') + EXACT_TAG=$(git describe --exact-match --match "v*" || echo "") + + if [[ "${EXACT_TAG}" != "" ]]; then + echo "Cross-building and PUSHING!" + docker buildx build --platform ${PLATFORMS} --push -f Dockerfile . --tag ghcr.io/${GITHUB_REPOSITORY}:${TAG} + else + echo "Cross-building ONLY" + docker buildx build --platform ${PLATFORMS} -f Dockerfile . + fi diff --git a/src/requirements.txt b/src/requirements.txt index 49ff8cc..decd04b 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -3,3 +3,5 @@ uvicorn==0.25.0 sqlalchemy-utils==0.41.1 sqlmodel==0.0.14 psycopg2==2.9.9 +jinja2==3.1.3 +pyyaml==6.0.1