v0.25.3 #40
Workflow file for this run
This file contains 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: Publish and Deploy | |
on: | |
release: | |
types: | |
- published | |
env: | |
PUBLISH_UPDATE_BRANCH: master | |
GIT_USER_NAME: OPTIMADE Developers | |
GIT_USER_EMAIL: "[email protected]" | |
jobs: | |
publish: | |
name: Publish OPTIMADE Python tools | |
runs-on: ubuntu-latest | |
if: github.repository == 'Materials-Consortia/optimade-python-tools' && startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install Python dependencies | |
run: | | |
python -m pip install -U pip | |
pip install -U setuptools wheel | |
pip install -r requirements.txt -r requirements-dev.txt -r requirements-client.txt -r requirements-http-client.txt -r requirements-docs.txt | |
pip install -e .[all] | |
- name: Update changelog | |
uses: CharMixer/auto-changelog-action@v1 | |
with: | |
token: ${{ secrets.RELEASE_PAT_BOT }} | |
release_branch: ${{ env.PUBLISH_UPDATE_BRANCH }} | |
exclude_labels: "duplicate,question,invalid,wontfix,dependency_updates,skip_changelog" | |
- name: Update API Reference docs and version - Commit changes and update tag | |
run: .github/utils/update_docs.sh | |
- name: Update '${{ env.PUBLISH_UPDATE_BRANCH }}' | |
uses: CasperWA/push-protected@v2 | |
with: | |
token: ${{ secrets.RELEASE_PAT_BOT }} | |
branch: ${{ env.PUBLISH_UPDATE_BRANCH }} | |
unprotect_reviews: true | |
sleep: 15 | |
force: true | |
tags: true | |
- name: Get tagged versions | |
run: echo "PREVIOUS_VERSION=$(git tag -l --sort -version:refname | sed -n 2p)" >> $GITHUB_ENV | |
- name: Create release-specific changelog | |
uses: CharMixer/auto-changelog-action@v1 | |
with: | |
token: ${{ secrets.RELEASE_PAT_BOT }} | |
release_branch: ${{ env.PUBLISH_UPDATE_BRANCH }} | |
since_tag: "${{ env.PREVIOUS_VERSION }}" | |
output: "release_changelog.md" | |
exclude_labels: "duplicate,question,invalid,wontfix,dependency_updates,skip_changelog" | |
- name: Append changelog to release body | |
run: | | |
gh api /repos/${{ github.repository }}/releases/${{ github.event.release.id }} --jq '.body' > release_body.md | |
cat release_changelog.md >> release_body.md | |
gh api /repos/${{ github.repository }}/releases/${{ github.event.release.id }} -X PATCH -F body='@release_body.md' | |
env: | |
GITHUB_TOKEN: ${{ secrets.RELEASE_PAT_BOT }} | |
- name: Build source distribution | |
run: python -m build | |
- name: Publish package to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_PASSWORD }} | |
docs: | |
name: Deploy documentation | |
needs: publish | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
ref: ${{ env.PUBLISH_UPDATE_BRANCH }} | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install Python dependencies | |
run: | | |
python -m pip install -U pip | |
pip install -U setuptools wheel | |
pip install -r requirements.txt -r requirements-dev.txt -r requirements-client.txt -r requirements-http-client.txt -r requirements-docs.txt | |
pip install -e .[all] | |
- name: Set git config | |
run: | | |
git config --global user.name "${{ env.GIT_USER_NAME }}" | |
git config --global user.email "${{ env.GIT_USER_EMAIL }}" | |
- name: Deploy documentation | |
run: | | |
mike deploy --push --remote origin --branch gh-pages --update-aliases --config-file mkdocs.yml ${GITHUB_REF#refs/tags/v} stable | |
mike deploy --push --remote origin --branch gh-pages --update-aliases --config-file mkdocs.yml latest master | |
publish_container_image: | |
name: Publish container image | |
needs: publish | |
uses: ./.github/workflows/cd_container_image.yml | |
with: | |
release: true | |
checkout_ref: master | |
secrets: inherit | |
permissions: | |
packages: write | |
contents: read |