Commit Graph
16 Commits
Author SHA1 Message Date
dextmorgn d90665849c ci: fix python-lint job missing Node/yarn for make lint's frontend checks
make lint (wired to run flowsint-app prettier/eslint in 88828c5f) needs
Node/yarn, but the job calling it only set up uv — prettier was missing
from PATH. Add setup-node + yarn install. Also drop the now-redundant
frontend-lint job: it duplicated the same checkout/install/format/lint
steps that make lint already runs in python-lint.
2026-08-26 00:22:01 +02:00
dextmorgn 5ef6f3c630 fix(ci): bump frontend node version to 22
lint-staged@17.3.0 requires node >=22.22.1; CI pinned node 20, so
yarn install failed outright on every frontend job (lint, typecheck,
tests) before any real check ran.
2026-08-25 09:33:35 +02:00
dextmorgn 8b49497965 build(python): replace black+isort+flake8 with ruff
One tool instead of three, one config instead of four duplicated
blocks. black/isort/flake8 dropped from every package's dev deps,
ruff added once; .flake8 deleted, [tool.black]/[tool.isort] blocks
deleted from all 4 sub-package pyproject.toml files.

Config lives once, at the workspace root: ruff walks up from any file
it's checking until it finds a pyproject.toml with a [tool.ruff]
table (verified empirically — a package's own pyproject.toml lacking
that table doesn't stop the search), so the root-level [tool.ruff]
applies to all four packages without duplication. That's the one real
win over the old per-package black/isort blocks, which had to be
copy-pasted four times and kept in sync by hand.

Same rule surface as before, not more: select = E/F/W/I (pycodestyle
+ pyflakes + isort-equivalent), matching exactly what flake8 checked.
ruff has other rule groups (UP/pyupgrade, B/bugbear) that would
surface real things — deliberately left off. Turning those on finds
new debt and is a separate decision with its own diff to review, not
a side effect of swapping the tool underneath an unchanged rule set.
Same E501 exclusion carried over too, same reasoning: the formatter
is the sole authority on line length.

known-first-party carries over unchanged (same isort concern this
repo already fixed once — see "app" vs "flowsint_api" in the ratchet
history) and the wildcard-import per-file-ignore for
flowsint_core/__init__.py still applies, verified directly.

Six files reformatted by `ruff format` where it disagreed with black
on edge cases (import grouping, ternary line-breaking, blank lines
after a class statement) — all cosmetic, no behavior change, reviewed
diff by diff. One real ruff-check finding (an import block ruff's
isort-equivalent wanted sorted differently) — took ruff check --fix.

Verified: `make lint` clean, `make test` green (all 4 packages),
lint-staged tested with a real staged-file run (not just config
inspection) to confirm `uv run ruff format` / `uv run ruff check --fix`
actually execute, mypy ratchet target unaffected (still fires on its
own pre-existing backlog, unrelated to this change).
2026-08-25 09:33:34 +02:00
dextmorgn 2fc60276ba ci: wire lint/typecheck/pre-commit gates that existed but never ran
flake8/mypy/eslint were configured (or, for eslint, declared) but no CI
job and no pre-commit hook ever executed them — black/isort/flake8 had
no line-length agreement either (flake8 defaulted to 79, black to 88).

- .flake8: align max-line-length with black, ignore black-conflicting
  codes, carve out the one file with an intentional wildcard-export API
- Makefile: `make lint` (black/isort/flake8, blocking — repo is clean),
  `make typecheck` (mypy, ratcheted to files the branch touched — ~2200
  pre-existing errors workspace-wide, not fixed blindly in one pass)
- .github/workflows/lint.yml: runs the above in CI, plus the frontend
  equivalents (prettier/eslint blocking where clean, eslint/tsc
  ratcheted where not)
- .github/workflows/tests.yml: add the vitest job that never existed
- flowsint-app/.eslintrc.cjs: parser was declared but never installed
  (yarn lint threw immediately) — install @typescript-eslint/*, add
  react-hooks/recommended; no-explicit-any set to warn (real backlog,
  not fixed blindly)
- lint-staged + husky pre-commit: mirrors the CI checks that are
  actually clean today (black/isort/flake8, prettier). eslint is left
  out of pre-commit on purpose — its backlog would block unrelated
  commits; it stays a CI-only ratchet until paid down.
2026-08-25 09:33:32 +02:00
dextmorgn e8aa938e7a feat(ci): add manual release workflow
workflow_dispatch button to bump version (patch/minor/major/custom),
update CHANGELOG.md, commit, tag and push to main via standard-version
— reusing the existing yarn release / sync-versions.js / .versionrc
setup instead of duplicating bump logic in YAML. The tag push then
triggers images.yml as-is.

Requires a GH_PAT secret: pushes made with the default GITHUB_TOKEN
don't trigger other workflows (GitHub anti-loop policy), so a plain
checkout token would silently skip the images.yml build.

sync-versions.js now also bumps the 4 workspace pyproject.toml files
(flowsint-api/core/enrichers/types) — previously only root
pyproject.toml and flowsint-app/package.json were kept in sync.
standard-version added as an explicit devDependency (was only
resolved transitively via yarn.lock before).
2026-08-24 23:03:29 +02:00
dextmorgn a24551ed55 ci: provide REDIS_URL, also import-time required by flowsint_core 2026-06-05 14:43:37 +02:00
dextmorgn 17e36c9162 ci: provide AUTH_SECRET required at flowsint_core import 2026-06-05 14:32:12 +02:00
dextmorgn 07584ebc4a ci: run python tests on pull requests and main
Single entrypoint: CI calls `make test`, same as local development,
so the two can't drift. uv handles Python (.python-version) and
dependency sync; cache keyed on uv.lock.

Also add flowsint-api to `make test` — its suite existed but was
never wired in.
2026-06-05 14:24:34 +02:00
dextmorgn 2a4878c8fc chore: update gh workflow 2026-04-11 15:20:07 +02:00
dextmorgnandGitHub fd20468c79 Merge pull request #115 from salmanmkc/upgrade-github-actions-node24-general
Upgrade GitHub Actions to latest versions
2026-02-02 20:56:42 +01:00
Salman Muin Kayser Chishti 152be112d0 Upgrade GitHub Actions to latest versions
Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
2026-02-01 09:12:10 +00:00
Salman Muin Kayser Chishti 01908e682b Upgrade GitHub Actions for Node 24 compatibility
Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
2026-02-01 09:12:05 +00:00
dextmorgn 73bb4a0e7a fix(ci): only upload Trivy SARIF when scan succeeds 2026-01-25 23:39:19 +01:00
dextmorgn a178ef1bcd feat(chore): update deploy components 2026-01-25 20:45:22 +01:00
dextmorgn b819c83bb0 fix: github/workflows/images.yml 2025-12-03 00:04:44 +01:00
nicocti 6a226c0dd7 feat(cicd): add Github Actions for images build & push 2025-12-02 20:17:06 +00:00