feat: Adding settings, utils, write to S3, and writer close #169
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |