Skip to content

Deploy

Deploy #249

Workflow file for this run

name: Deploy
on:
push:
branches:
- master
schedule:
# cron every week on monday
- cron: "0 0 * * 1"
jobs:
deploy:
strategy:
matrix:
image:
- name: latest
python_version: "3.11"
- name: python3.11
python_version: "3.11"
- name: python3.10
python_version: "3.10"
- name: python3.9
python_version: "3.9"
- name: python3.8
python_version: "3.8"
- name: python3.7
python_version: "3.7"
- name: python3.11-slim
python_version: "3.11"
- name: python3.10-slim
python_version: "3.10"
- name: python3.9-slim
python_version: "3.9"
- name: python3.8-slim
python_version: "3.8"
fail-fast: true
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Set Dockerfile name
if: matrix.image.name != 'latest'
run: echo "DOCKERFILE_NAME=${{ matrix.image.name }}" >> $GITHUB_ENV
- name: Set Dockerfile name latest
if: matrix.image.name == 'latest'
run: echo "DOCKERFILE_NAME=python${{ matrix.image.python_version }}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Get date for tags
run: echo "DATE_TAG=$(date -I)" >> "$GITHUB_ENV"
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
platforms: linux/amd64,linux/arm64
tags: |
tiangolo/uvicorn-gunicorn:${{ matrix.image.name }}
tiangolo/uvicorn-gunicorn:${{ matrix.image.name }}-${{ env.DATE_TAG }}
context: ./docker-images/
file: ./docker-images/${{ env.DOCKERFILE_NAME }}.dockerfile
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: tiangolo/uvicorn-gunicorn