broker-sync/.woodpecker/build.yml

46 lines
1.3 KiB
YAML
Raw Normal View History

when:
event: push
branch: [main, master]
clone:
git:
image: woodpeckerci/plugin-git
settings:
attempts: 5
backoff: 10s
steps:
- name: lint-and-test
image: python:3.12-slim
commands:
- pip install --no-cache-dir "poetry==1.8.4"
- poetry install --no-interaction --no-root
- poetry run ruff check .
- poetry run mypy broker_sync tests
- poetry run pytest -q
- name: build-and-push
image: woodpeckerci/plugin-docker-buildx
depends_on:
- lint-and-test
settings:
# Image name is `wealthfolio-sync` to match the deployment in
# infra/stacks/wealthfolio/main.tf (CronJob `wealthfolio-sync`).
# The repo is called `broker-sync` because the source covers
# multiple brokers (Trading 212, Schwab, Fidelity, IMAP-CSV) —
# we just happen to publish it under the wealthfolio name since
# that's the consumer stack.
repo:
- forgejo.viktorbarzin.me/viktor/wealthfolio-sync
logins:
- registry: forgejo.viktorbarzin.me
username:
from_secret: forgejo_user
password:
from_secret: forgejo_push_token
dockerfile: Dockerfile
context: .
auto_tag: true
platforms:
- linux/amd64