Skip to content

chore(deps): update docker/build-push-action action to v5 #685

chore(deps): update docker/build-push-action action to v5

chore(deps): update docker/build-push-action action to v5 #685

Workflow file for this run

name: CI
on:
push:
tags: ["v*.*.*"]
branches: [main]
pull_request:
branches: [main]
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- uses: pre-commit/[email protected]
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- run: make install-poetry
- run: echo "::add-matcher::.github/matcher-python.json"
- run: make lint
test:
runs-on: ubuntu-latest
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-py${{ matrix.python-version }}-pip-
- run: |
sudo apt-get update
sudo apt-get install -y ffmpeg
- if: matrix.python-version == '3.11'
run: |
sudo apt-get install -y libxml2-dev libxslt1-dev
- run: make install-poetry
- run: make install
- run: make test
publish:
needs: [pre-commit, lint, test]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- run: make install-poetry
- run: >
POETRY_PYPI_TOKEN_PYPI=${{ secrets.PYPI_TOKEN }}
make ci-publish
container:
needs: [pre-commit, lint, test]
runs-on: ubuntu-latest
env:
IMAGE_NAME: ${{ github.repository }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to the Docker Container registry
if: github.repository_owner == 'jooola' && startsWith(github.ref, 'refs/tags')
uses: docker/login-action@v2
with:
registry: docker.io
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to the Github Container registry
if: github.repository_owner == 'jooola' && startsWith(github.ref, 'refs/tags')
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels)
id: meta
uses: docker/metadata-action@v4
with:
images: |
docker.io/${{ env.IMAGE_NAME }}
ghcr.io/${{ env.IMAGE_NAME }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: ${{ github.repository_owner == 'jooola' && startsWith(github.ref, 'refs/tags') }}
no-cache: ${{ github.repository_owner == 'jooola' && startsWith(github.ref, 'refs/tags') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=container
cache-to: type=gha,scope=container,mode=max