Skip to content

Main Deployment Workflow #39

Main Deployment Workflow

Main Deployment Workflow #39

Workflow file for this run

name: Main Deployment Workflow
on:
pull_request:
branches:
- master
push:
branches:
- master
schedule:
- cron: "0 0 * * *"
jobs:
lint:
name: Lint domain2idna
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.12"
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --upgrade .[dev]
pip install pylint
- name: Lint with Pylint
run: pylint domain2idna
test:
needs: [lint]
name: "[${{ matrix.os }}-py${{ matrix.python_version }}] Test domain2idna"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --upgrade .[test]
pip install coveralls
- name: Test as defined by tox.ini
run: |
tox -c tox.ini
coveralls:
needs: test
name: Finish Coveralls
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.12"
os:
- ubuntu-latest
steps:
- name: Sending finish flag to coveralls.io
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
cli-test:
needs: [lint]
name: "[${{ matrix.os }}-py${{ matrix.python_version }}] Integration Test"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --upgrade .
- name: Run inline test
run: |
domain2idna -d аррӏе.com
domain2idna -s аррӏе.com google.com
- name: Run test from file
run: |
domain2idna -f .ci/list_of_domain
domain2idna -f .ci/list_of_domain -o list_of_domain_converted
cat list_of_domain_converted
deploy_to_pypi:
needs: [test, cli-test]
name: "Deploy 📦 to the PyPi"
environment: release
permissions:
id-token: write
attestations: write
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.12"
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install twine wheel setuptools
- name: Build 📦
run: |
python setup.py sdist bdist_wheel
- name: Check 📦
run: |
twine check dist/*
- name: Attest 📦
uses: actions/attest-build-provenance@v1
with:
subject-path: "dist/*"
- name: Publish 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true