DispelEvilBot/.gitea/workflows/ci.yml

56 lines
1.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: CI
on:
push:
branches: [master]
tags: ["v*"]
workflow_dispatch:
env:
REGISTRY: git.mpakosrv.ru
IMAGE_NAME: mpakobecx/dispelevilbot-bot
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Установка зависимостей
run: pip install -r requirements-dev.txt
# Линт/формат пока не блокируют пайплайн (см. TODO). После первого прогона
# выполните локально `ruff check --fix .` и `black .`, затем уберите
# continue-on-error, чтобы стиль стал обязательным.
- name: Ruff
continue-on-error: true
run: ruff check .
- name: Black
continue-on-error: true
run: black --check .
- name: Pytest
run: pytest -q
build-push:
runs-on: ubuntu-latest
needs: lint-test
# Собираем и пушим образ. Автодеплой НЕ делаем — выкатка вручную (test -> prod).
steps:
- uses: actions/checkout@v4
- name: Логин в Gitea Registry
run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "$REGISTRY" -u "${{ secrets.REGISTRY_USER }}" --password-stdin
- name: Сборка и публикация образа
run: |
set -e
IMAGE="$REGISTRY/$IMAGE_NAME"
SHORT_SHA="${GITHUB_SHA:0:12}"
TAGS="$IMAGE:$SHORT_SHA $IMAGE:latest"
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
TAGS="$TAGS $IMAGE:${GITHUB_REF_NAME}"
fi
ARGS=""
for t in $TAGS; do ARGS="$ARGS -t $t"; done
docker build $ARGS .
for t in $TAGS; do docker push "$t"; done