CI/CD Integration

May 30, 2026 | 5 min read

GitHub Actions

name: Pyvorin Compile
on: [push]
jobs:
  compile:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: |
          pip install pyvorin-thin \
            --extra-index-url https://pypi.pyvorin.com/simple
          pyvorin init
          pyvorin activate ${{ secrets.PYVORIN_LICENSE_KEY }}
          pyvorin doctor --network
          pyvorin scan main.py
          pyvorin benchmark main.py --function main

GitLab CI

stages:
  - compile

pyvorin:
  stage: compile
  image: python:3.12
  script:
    - pip install pyvorin-thin --extra-index-url https://pypi.pyvorin.com/simple
    - pyvorin init
    - pyvorin activate $PYVORIN_LICENSE_KEY
    - pyvorin run main.py --no-fallback
  only:
    - main

Jenkins

pipeline {
    agent any
    stages {
        stage('Compile') {
            steps {
                sh 'pip install pyvorin-thin --extra-index-url https://pypi.pyvorin.com/simple'
                sh 'pyvorin init'
                sh 'pyvorin activate $PYVORIN_LICENSE_KEY'
                sh 'pyvorin benchmark main.py'
            }
        }
    }
}

Best Practices

  • Store your license key as a CI secret, never in the repository.
  • Use --no-fallback in CI to catch compilation failures as build errors.
  • Archive benchmark results as build artifacts for trend analysis.