• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: Upload package
2
3on:
4  push:
5    tags:
6      - '*'
7  workflow_dispatch:
8
9jobs:
10  deploy:
11    runs-on: ubuntu-latest
12    steps:
13    - uses: actions/checkout@v3
14    - name: Set up Python
15      uses: actions/setup-python@v5
16      with:
17        python-version: '3.13'
18    - name: Install dependencies
19      run: |
20        python -m pip install --upgrade pip
21        pip install -U build twine
22    - name: Build package
23      run: |
24        python -m build
25    - name: Publish package
26      env:
27        TWINE_USERNAME: "__token__"
28      run: |
29        if [[ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]]; then
30          export TWINE_REPOSITORY="testpypi"
31          export TWINE_PASSWORD="${{ secrets.TEST_PYPI_UPLOAD_TOKEN }}"
32        elif [[ "$GITHUB_EVENT_NAME" == "push" ]]; then
33          export TWINE_REPOSITORY="pypi"
34          export TWINE_PASSWORD="${{ secrets.PYPI_UPLOAD_TOKEN }}"
35        else
36          echo "Unknown event name: ${GITHUB_EVENT_NAME}"
37          exit 1
38        fi
39        python -m twine upload dist/*
40