👷 Split validate workflow between Forgejo and GitHub #43

Merged
mat merged 1 commit from forgejo-workflows into main 2026-07-10 13:56:54 +00:00
Owner

Split the validate workflow so each forge runs only the jobs it can.

.forgejo/workflows/validate.yml (new) — portable jobs

lint-ruff, test-pytest, type-check-mypy.

Forgejo only reads .github/workflows as a fallback when .forgejo/workflows does not exist. Since .forgejo/workflows already contained renovate.yml, the validate workflow was never executed on Forgejo — so lint, tests and the mypy type check have been silently skipped since the migration to Forgejo. Moving the portable jobs into .forgejo/workflows makes them run again.

.github/workflows/validate.yml — GitHub-only jobs

Trimmed to validate-hacs and validate-hassfest:

  • validate-hacshacs/action queries the HACS backend for the repository on github.com
  • validate-hassfesthome-assistant/actions/hassfest is Docker-based and GitHub-only

Kept the github.server_url == 'https://github.com' guards so they only run on GitHub.

Result

Job Runs on
lint-ruff, test-pytest, type-check-mypy Forgejo
validate-hacs, validate-hassfest GitHub
Split the validate workflow so each forge runs only the jobs it can. ## .forgejo/workflows/validate.yml (new) — portable jobs `lint-ruff`, `test-pytest`, `type-check-mypy`. Forgejo only reads `.github/workflows` as a fallback when `.forgejo/workflows` does **not** exist. Since `.forgejo/workflows` already contained `renovate.yml`, the `validate` workflow was **never executed** on Forgejo — so lint, tests and the mypy type check have been silently skipped since the migration to Forgejo. Moving the portable jobs into `.forgejo/workflows` makes them run again. ## .github/workflows/validate.yml — GitHub-only jobs Trimmed to `validate-hacs` and `validate-hassfest`: - **validate-hacs** — `hacs/action` queries the HACS backend for the repository on `github.com` - **validate-hassfest** — `home-assistant/actions/hassfest` is Docker-based and GitHub-only Kept the `github.server_url == 'https://github.com'` guards so they only run on GitHub. ## Result | Job | Runs on | | --- | --- | | lint-ruff, test-pytest, type-check-mypy | Forgejo | | validate-hacs, validate-hassfest | GitHub |
👷 Move validate workflow to Forgejo Actions
Some checks failed
Validate / lint-ruff (push) Successful in 8s
Validate / test-pytest (push) Successful in 3m3s
Validate / type-check-mypy (push) Successful in 3m15s
Validate / lint-ruff (pull_request) Successful in 7s
Validate / test-pytest (pull_request) Successful in 2m58s
Validate / type-check-mypy (pull_request) Has been cancelled
c004036e85
Forgejo only reads .github/workflows as a fallback when .forgejo/workflows does not exist. Since .forgejo/workflows already contains renovate.yml, the validate workflow in .github/workflows was never executed on this forge — so lint, tests and the mypy type check have been silently skipped since the migration to Forgejo.

Move validate.yml into .forgejo/workflows so it runs again, and drop the two GitHub-only jobs that cannot work here:
- validate-hacs: hacs/action queries the HACS backend for the repo on github.com
- validate-hassfest: home-assistant/actions/hassfest is Docker-based and GitHub-only

The portable jobs (lint-ruff, test-pytest, type-check-mypy) are unchanged and keep using plain pip installs + the nikolaik/python-nodejs image so actions/checkout (a JS action) works inside the job container.
mat force-pushed forgejo-workflows from c004036e85
Some checks failed
Validate / lint-ruff (push) Successful in 8s
Validate / test-pytest (push) Successful in 3m3s
Validate / type-check-mypy (push) Successful in 3m15s
Validate / lint-ruff (pull_request) Successful in 7s
Validate / test-pytest (pull_request) Successful in 2m58s
Validate / type-check-mypy (pull_request) Has been cancelled
to 75f28607f7
All checks were successful
Validate / lint-ruff (push) Successful in 7s
Validate / test-pytest (push) Successful in 3m0s
Validate / type-check-mypy (push) Successful in 3m7s
Validate / lint-ruff (pull_request) Successful in 7s
Validate / test-pytest (pull_request) Successful in 2m58s
Validate / type-check-mypy (pull_request) Successful in 3m7s
2026-07-10 13:50:39 +00:00
Compare
mat changed title from 👷 Move validate workflow to Forgejo Actions to 👷 Split validate workflow between Forgejo and GitHub 2026-07-10 13:50:57 +00:00
mat merged commit 35d70a60a6 into main 2026-07-10 13:56:54 +00:00
mat deleted branch forgejo-workflows 2026-07-10 13:56:54 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mat/homeassistant-comwatt!43
No description provided.