--- /dev/null
+on:
+ push:
+ tags:
+ - "v*" # Push events to matching `v*` version srings. e.g. v1.0, v20.15.10
+
+name: Create and Publish Release
+
+jobs:
+ build:
+ name: Create and Publish Release
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: recursive
+ fetch-depth: 0
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.x'
+
+ - name: Install release dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install --upgrade setuptools wheel twine
+ - name: Get release notes
+ id: release_notes
+ run: |
+ # By default, GH Actions checkout will only fetch a single commit.
+ # For us to extract the release notes, we need to fetch the tags
+ # and tag annotations as well.
+ # https://github.com/actions/checkout/issues/290
+ git fetch --tags --force
+ TAG_NAME=${GITHUB_REF/refs\/tags\//}
+ echo "$(git tag -l --format='%(contents)' $TAG_NAME)" > "${{ runner.temp }}/CHANGELOG.md"
+ - name: Create GitHub release
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ github.ref }}
+ release_name: ${{ github.ref }}
+ body_path: "${{ runner.temp }}/CHANGELOG.md"
+ draft: false
+ prerelease: false
+
+ - name: Build and publish to PyPI
+ env:
+ TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+ run: |
+ python setup.py sdist bdist_wheel
+ twine upload dist/gflanguages*
\ No newline at end of file