diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..ac2423c --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,48 @@ +# This workflow will upload a Python Package using Twine when a release is created +# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package + +on: + release: + branches: [main] + types: [published] + workflow_dispatch: + +permissions: + contents: read + +jobs: + deploy: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.x' + - name: Install dependencies + run: python -m pip install --upgrade pip twine + - name: Build wheel + run: python -m pip wheel -w dist . + - name: Check distribution + run: twine check dist/* + - name: Publish package (to TestPyPI) + if: github.event_name == 'workflow_dispatch' && github.repository == 'cpp-linter/cpp-linter-hooks' + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.TEST_PYPI_TOKEN }} + run: twine upload --repository testpypi dist/* + - name: Publish package (to PyPI) + if: github.event_name != 'workflow_dispatch' && github.repository == 'cpp-linter/cpp-linter-hooks' + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + run: twine upload dist/* diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index abbf4c3..7d1683e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,12 +1,16 @@ -name: "Test" +name: Test on: push: branches: main - paths: '**.py' + paths: + - '**.py' + - '.github/workflows/test.yml' pull_request: branches: main - paths: '**.py' + paths: + - '**.py' + - '.github/workflows/test.yml' workflow_dispatch: jobs: @@ -25,14 +29,6 @@ jobs: pip install . pip install -r requirements-dev.txt - # - name: Add tag to latest commit for testing - # run: | - # git config user.name 'github-actions' - # git config user.email '41898282+github-actions[bot]@users.noreply.github.com' - # git push --delete origin latest || true - # git tag -a latest -m 'Retag latest commit' - # git push origin latest - - name: Run tests and collect coverage run: | coverage run --source=tests,cpp_linter_hooks -m pytest