Skip to content

feat: Adding settings, utils, write to S3, and writer close #169

feat: Adding settings, utils, write to S3, and writer close

feat: Adding settings, utils, write to S3, and writer close #169

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
# These permissions are needed to interact with AWS S3 via GitHub's OIDC Token endpoint
permissions:
id-token: write
contents: read
pull-requests: read
jobs:
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
python-version: [
'3.9', '3.10', '3.11', '3.12', '3.13', '3.14'
]
os: [ubuntu-latest]
EXTRA: [false] # used to force includes to get included
# EXTRA runs should be either the oldest or the newest python.
include:
- python-version: '3.9'
os: ubuntu-22.04 # oldest version on github actions
EXTRA: true
- python-version: '3.14'
os: ubuntu-latest
env:
LOGLEVEL=DEBUG
EXTRA: true
- python-version: '3.14'
os: macos-latest
EXTRA: true
- python-version: '3.14'
os: windows-latest
EXTRA: true
steps:
- name: checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Get Runner IP
run: |
echo "Runner IP: $(curl -s https://ipinfo.io/ip)"
- name: Install setuptools on python 3.12+
# apparently this is a quirk of Github action runners?
if: ${{ matrix.python-version >= '3.12' }}
run: |
pip install setuptools
- name: Install cdx_toolkit
run: pip install .[test]
- name: Configure AWS credentials from OIDC (disabled for forks)
if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push'
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::837454214164:role/GitHubActions-Role
aws-region: us-east-1
- name: Disable S3 unit tests for Python 3.8 (boto3 requires Python 3.9+)
if: ${{ startsWith(matrix.python-version, '3.8') }}
uses: actions/github-script@v7
with:
script: |
core.exportVariable('CDXT_DISABLE_S3_TESTS', '1')
- name: Set environment variables for faster unit tests (requests are mocked)
uses: actions/github-script@v7
with:
script: |
core.exportVariable('CDXT_MAX_ERRORS', '2')
core.exportVariable('CDXT_WARNING_AFTER_N_ERRORS', '2')
core.exportVariable('CDXT_DEFAULT_MIN_RETRY_INTERVAL', '0.01')
core.exportVariable('CDXT_CC_INDEX_MIN_RETRY_INTERVAL', '0.01')
core.exportVariable('CDXT_CC_DATA_MIN_RETRY_INTERVAL', '0.01')
core.exportVariable('CDXT_IA_MIN_RETRY_INTERVAL', '0.01')
core.exportVariable('DISABLE_ATHENA_TESTS', '1')
core.exportVariable('LOGLEVEL', 'DEBUG')
- name: Lint code
run: |
make lint
- name: Run tests
run: |
make test_coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}