Skip to content

Create GitHub Action script to prevent API v1 deployment if v1 and v2 model versions don't align #2866

Create GitHub Action script to prevent API v1 deployment if v1 and v2 model versions don't align

Create GitHub Action script to prevent API v1 deployment if v1 and v2 model versions don't align #2866

Workflow file for this run

name: Pull request
on: pull_request
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
- name: Format with Black
uses: psf/black@stable
with:
options: ". -l 79 --check"
check-version:
name: Check version
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Build changelog
run: pip install yaml-changelog && make changelog
- name: Preview changelog update
run: ".github/get-changelog-diff.sh"
- name: Check version number has been properly updated
run: ".github/is-version-number-acceptable.sh"
test_container_builds:
name: Docker
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.POLICYENGINE_DOCKER }}
- name: Build container
run: docker build -t ghcr.io/policyengine/policyengine docker
test_env_vars:
name: Test environment variables
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Auth
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Install dependencies
run: make install
- name: Run environment variable tests
run: pytest tests/env_variables/test_environment_variables.py
env:
POLICYENGINE_GITHUB_MICRODATA_AUTH_TOKEN: ${{ secrets.POLICYENGINE_GITHUB_MICRODATA_AUTH_TOKEN }}
HUGGING_FACE_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }}
POLICYENGINE_DB_PASSWORD: ${{ secrets.POLICYENGINE_DB_PASSWORD }}
test:
name: Test
runs-on: ubuntu-latest
needs: test_env_vars
container:
image: policyengine/policyengine-api
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Auth
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v2
with:
project_id: policyengine-api
- name: Install dependencies
run: make install
- name: Test deployment prevention script
run: ".github/request-model-versions.sh -b prod-api-v2-c4d5-metadata -us 1.1.1 -uk 1.1.1 -t 30"
- name: Test the API
run: make test
env:
POLICYENGINE_DB_PASSWORD: ${{ secrets.POLICYENGINE_DB_PASSWORD }}
POLICYENGINE_GITHUB_MICRODATA_AUTH_TOKEN: ${{ secrets.POLICYENGINE_GITHUB_MICRODATA_AUTH_TOKEN }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
HUGGING_FACE_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: PolicyEngine/policyengine-api