Skip to content

ci: Split GitHub Actions into separate workflows#7

Merged
sokripon merged 4 commits intosokripon:mainfrom
clawdbot-silly-waddle:feature/new-command
Jan 16, 2026
Merged

ci: Split GitHub Actions into separate workflows#7
sokripon merged 4 commits intosokripon:mainfrom
clawdbot-silly-waddle:feature/new-command

Conversation

@clawdbot-silly-waddle
Copy link
Contributor

Summary

Split GitHub Actions into three separate workflows to improve PR workflow and avoid failures on fork-based PRs.

Changes

  • lint.yml: Run linter (ruff) and type checking (mypy) on every push and PR
  • tests.yml: Run basic API tests that don't require email sending on every push and PR
  • email-tests.yml: Run tests that require Postmark email sending only on manual workflow_dispatch trigger

Benefits

  • Linting runs fast on every PR without waiting for long test runs
  • Basic API tests run on every PR without requiring Postmark secrets
  • Email sending tests only run when manually triggered by maintainer with secrets
  • Uses pytest markers ("flow") to separate tests by dependencies
  • Fork-based PRs will no longer fail due to missing secrets

Testing

  • Lint workflow runs on every push and PR
  • Basic tests run without Postmark credentials
  • Email tests only trigger on manual dispatch (maintainer action)

The create-with-session command and its 'new' alias are already in
upstream/main, so the benefits section is no longer needed.
- **lint.yml**: Run linter (ruff) and type checking (mypy) on every push and PR
- **tests.yml**: Run basic tests that don't require email sending on every push and PR
- **email-tests.yml**: Run tests that require Postmark email sending only on manual trigger

Benefits:
- Linting runs fast on every PR without waiting for long test runs
- Basic API tests run on every PR without requiring Postmark secrets
- Email sending tests only run when manually triggered by maintainer with secrets
- Uses pytest markers ("flow") to separate tests by dependencies

This fixes the issue where PRs from forks fail due to missing Postmark secrets.
mypy is not available in the project, so remove it from lint workflow.
Ruff provides sufficient linting capabilities.
- test_email_sender_initialization() creates PostmarkEmailSender without session
- test_wait_for_email_async() sends test email using PostmarkEmailSender
- test_wait_for_email_filtered_async() sends test emails using PostmarkEmailSender

These tests now properly excluded from basic tests workflow via -m "not flow"
@sokripon sokripon merged commit 59f2ab2 into sokripon:main Jan 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants