Skip to main content

tools-cicd

share cicd scripts

Running tool locally

Example:

uv sync
AWS_PROFILE=dev-admin-terraform uv run cicd --help
uv run cicd --version      # or `cicd version`
uv run pytest

Release Procedures

  • This project uses "trunk" based development off of master.
  • PRs are allowed but always folded back to master.
  • Releasing is manual through the publish.yml workflow.
  • To release:
    • Ensure all your features are ready on master
    • Trigger the publish.yml workflow with workflow_dispatch and choose patch, minor, or major for bump.
      • The workflow runs uv version --bump to auto-rev the version, commits pyproject.toml + uv.lock, tags vX.Y.Z, then builds with uv build and publishes to PyPI.

Multi-Repository Release Coordination

The quest-v2 project includes a coordinated release script that allows you to trigger deployments across all related Quest v2 repositories simultaneously, rather than having to manually trigger each repository's release workflow individually.

Prerequisites

  1. GitHub CLI: Install the GitHub CLI tool

    # macOS
    brew install gh
    
    # Ubuntu/Debian
    sudo apt install gh
    
    # Windows
    winget install GitHub.cli
    
  2. Authentication: Authenticate with GitHub

    gh auth login
    
  3. Script Setup: Navigate to the quest-v2 directory and make the script executable

    cd quest-v2
    chmod +x release-all.sh
    

Usage

From the quest-v2 directory, the script supports promoting from develop to qa:

# Promote to QA
./release-all.sh

# Show help and options
./release-all.sh --help

What it does

The script will:

  1. Trigger the "Release" workflow on all three Quest v2 repositories:
    • allfly-quest-ui
    • allfly-quest-core-api
    • gds-api
  2. Promote code from develop branch to qa
  3. Provide real-time status updates and links to monitor progress
  4. Display a summary of successful and failed releases

Monitoring

After triggering the releases, you can monitor progress through:

  • The provided GitHub Actions URLs in the script output
  • GitHub's Actions tab in each repository
  • Your configured Slack notifications (if enabled)

Note: The script requires appropriate permissions to trigger workflows on all three Quest v2 repositories. Ensure your GitHub account has the necessary access rights.

Vulnerability scans (cicd vscan)

Weekly dependency audit that also fixes what it can, as one PR per repo:

cicd vscan python                      # scan only (pip-audit against uv.lock)
cicd vscan python --fix --dry-run      # show the upgrade plan, touch nothing
cicd vscan python --fix                # upgrade uv.lock locally and re-scan
cicd vscan python --open-pr --notify   # CI: commit, open/update `chore/vscan-python` PR, post to Slack

cicd vscan npm takes the same flags. It runs npm audit fix --package-lock-only (never --force) and diffs package-lock.json to report what moved; fixes that need a breaking upgrade are listed under "Needs attention". A dry run fixes and re-audits a throwaway copy, so its report matches a real run.

  • Each vulnerable package is pinned to the smallest version that fixes all of its advisories (uv lock --upgrade-package pkg==x). Upgrades that uv can't resolve (e.g. another dependency caps the version) or that exceed max_bump are listed under "Needs attention" instead.
  • The PR branch is stable, so an unmerged PR is updated in place the next week instead of piling up.
  • The PR must be pushed with ACTIONS_PAT (not GITHUB_TOKEN) so PR checks run on it.
  • Per-repo overrides (display name, base branch, max_bump, expiring ignores) live in .github/vscan.toml; see src/allfly/vscan/config.py.
  • Repos call the reusable workflow .github/workflows/vscan.yml (usage at the top of that file).
  • Slack: posts when there are findings or the scan fails. Add --notify-clean (or notify_clean = true in vscan.toml) to also post on clean runs. The reusable workflow posts its own alert if the job dies before cicd can report (e.g. checkout/token errors).

Metadata

Release files for af-cicd 0.4.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 af-cicd 0.4.0
File Size Uploaded Provenance
af_cicd-0.4.0.tar.gz 69.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for af-cicd 0.4.0
File Interpreter ABI Platform
af_cicd-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 178.6 kB

Release files / af_cicd-0.4.0.tar.gz

Download URL af_cicd-0.4.0.tar.gz
Size 69.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7a0f872a5b9ad17240267c9a75f800966bd8cbcb9f07f26314c94bcfe92dcca6
BLAKE2b-256 checksum
How to use checksums
80e1aec40cb1b5d8fe8cf8d4896b95d9107174ac871dcd190842d5f9cc54d960
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 5, 2026.

Transparency log

Release files / af_cicd-0.4.0-py3-none-any.whl

Download URL af_cicd-0.4.0-py3-none-any.whl
Size 109.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c47cd9a577d9cdb18b73d742d8e70532eab11137969b1cd8cde38d0c676096ce
BLAKE2b-256 checksum
How to use checksums
1fa96d95e8d120849b230fe016d185be33b845583e9c14eeac120df44ec71371
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 5, 2026.

Transparency log

Security for af-cicd 0.4.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for af_cicd-0.4.0.tar.gz

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 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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