Skip to content

Use yq to pull release version #1

Use yq to pull release version

Use yq to pull release version #1

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
jobs:
versions:
runs-on: ubuntu-latest
outputs:
python_version: ${{ steps.python-version.outputs.python_version }}
release_version: ${{ steps.release-version.outputs.release_version }}
steps:
- uses: actions/checkout@v4
- name: Get latest supported Python version
id: python-version
run: |
CLASSIFIERS="$(yq -p toml -o toml '.project.classifiers[]' pyproject.toml | grep "Programming Language :: Python :: " | grep "\.")"
VERSION="$(echo "${CLASSIFIERS}" | sed -e 's/Programming Language :: Python :: \([0-9.]*\)$/"\1"/g' | tail -n 1)"
echo "python_version=[${VERSION}]" > "${GITHUB_OUTPUT}"
# See: https://stackoverflow.com/questions/58177786/get-the-current-pushed-tag-in-github-actions
- name: Get release version
id: release-version
run: |

Check failure on line 23 in .github/workflows/release.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/release.yaml

Invalid workflow file

You have an error in your yaml syntax on line 23
VERSION="$(yq -p toml -o toml -r '.project.version' pyproject.toml)"
echo "release_version=${VERSION}" >> "${GITHUB_OUTPUT}"
build:
runs-on: ubuntu-latest
needs:
- versions
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ needs.versions.outputs.python_version }}
uses: actions/setup-python@v4
with:
python-version: "${{ needs.versions.outputs.python_version }}"
- name: Install the world
run: |
python -m pip install --upgrade build pip setuptools wheel
pip install -e .[dev]
- name: Build Package Distributions
run: python -m build
- name: Store Package Distributions
uses: actions/upload-artifact@v3
with:
name: package-distributions
path: dist/
- name: Build Man Page
run: sphinx-build -M man docs _build
- name: Store Man Page
uses: actions/upload-artifact@v3
with:
name: man-page
path: _build/man
pypi-release:
runs-on: ubuntu-latest
needs:
- build
environment:
name: pypi
url: https://pypi.org/p/pypi
permissions:
id-token: write
steps:
- name: Download distributions
uses: actions/download-artifact@v3
with:
name: package-distributions
path: dist/
- name: Publish release to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
github-release:
runs-on: ubuntu-latest
needs:
- versions
- build
steps:
- uses: actions/checkout@v4
- name: Download distributions
uses: actions/download-artifact@v3
with:
name: package-distributions
path: dist/
- name: Download man page
uses: actions/download-artifact@v3
with:
name: man-page
path: man
- name: Create a GitHub release
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: false
title: Release v${{ needs.versions.outputs.release_version }}
files: |
dist/*
man