Skip to main content

otb-airflow-triggers

Quality checks PyPI version Python 3.12+ Release status

Introduction

This repository contains custom openthebox Airflow triggers for the openthebox Airflow repository.

The triggers must be available to the Airflow triggerer service as well as the worker pods. They therefore need a separate package that each service can install independently. Code available only in worker pods cannot run in the triggerer service.

Dependencies

The dependencies must target the same versions as those in the airflow-dag repository. Keep the versions in pyproject.toml aligned with that repository when dependencies change. This includes Airflow and the Amazon provider. The Amazon provider includes its aiobotocore extra for asynchronous AWS calls.

Triggers

Trigger Description
aws.ec2.CommandTrigger Extends SsmRunCommandTrigger to monitor SSM commands and EC2 instance state. Requests cancellation if the instance is missing or cannot run the command.

Local development

Use Python 3.12 or later. Run these commands from the project root to create and activate a virtual environment. Install the package with its development dependencies.

# Create a virtual environment.
python3.12 -m venv venv
# Activate the virtual environment.
source venv/bin/activate
# Install the package and its development dependencies.
python -m pip install -e '.[dev]'

Run these checks from the project root.

# Check the lint rules.
ruff check .
# Check the code format.
ruff format --check .
# Check the types.
mypy src/ tests/
# Check the source code for security issues.
bandit -r src/
# Run the tests and collect coverage data.
coverage run -m pytest
# Show the coverage report.
coverage report

GitHub workflows

Pull requests into main run the quality checks in ci.yml. The checks cover tests, coverage, lint rules, formatting, and types. They also check dependency compatibility, security issues with Bandit, and package metadata. The checks run with Python 3.12.

Deployment

Production release

Create and publish a GitHub release to start the full production release workflow, release.yml. It runs the quality checks, checks the release tag, builds the package, and publishes it to PyPI. It then attaches the wheel and source archive to the existing GitHub release. The package version must match the tag and the GitHub pre-release setting. For example, tag v0.1.0rc1 must have the pre-release setting enabled.

Release candidate

The Publish release candidate workflow supports manual publishing from a branch or tag. It runs the same quality checks and builds the exact commit that passed them. It publishes a release candidate to PyPI or TestPyPI. It does not create a GitHub release or attach files to a release. Workflow artifacts transfer distributions between jobs and expire after one day.

Start this workflow manually and select the package index in the target input. The workflow must exist on the default branch before GitHub makes manual runs available.

  1. Open the repository's Actions page.
  2. Select Publish release candidate.
  3. Select Run workflow.
  4. Select the branch or tag under Use workflow from.
  5. Select pypi or testpypi in target.
  6. Start the workflow.

The version comes from hatch-vcs and the selected commit's Git history. For example, commits after v0.1.0 produce a version such as 0.1.1.dev7. A tag such as v0.1.1rc1 produces 0.1.1rc1. Manual publishing requires a pre-release version and rejects final-release tags. Each package index accepts a version only once. Select a later commit or a new pre-release tag for another upload.

Metadata

Release files for otb-airflow-triggers 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for otb-airflow-triggers 1.0.0
File Size Uploaded
otb_airflow_triggers-1.0.0.tar.gz 5.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for otb-airflow-triggers 1.0.0
File Interpreter ABI Platform
otb_airflow_triggers-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.8 kB

Release files / otb_airflow_triggers-1.0.0.tar.gz

Download URL otb_airflow_triggers-1.0.0.tar.gz
Size 5.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f790d7b39bd4ea48b3736675594cc8eeaf4763be439046448be628acd44c8dfc
BLAKE2b-256 checksum
How to use checksums
56086084fdc3e31856a27b19cd8fa78a63a706f486acbc7c27e8913cf43e3c00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / otb_airflow_triggers-1.0.0-py3-none-any.whl

Download URL otb_airflow_triggers-1.0.0-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a7a80f79b9bc665279acb03ba8017c6c5dbebff8996d73b27a681f45bad2f67
BLAKE2b-256 checksum
How to use checksums
567e0f657741bbfac1be4112969a6d67a79ef7ba8bb5216c6f7f5ca8546605d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page