Skip to content

Commit

Permalink
Add tox-toml-fmt
Browse files Browse the repository at this point in the history
Signed-off-by: Bernát Gábor <[email protected]>
  • Loading branch information
gaborbernat committed Oct 31, 2024
1 parent d55e765 commit f5afc78
Show file tree
Hide file tree
Showing 35 changed files with 1,459 additions and 62 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ on:
workflow_dispatch:
push:
branches: ["main"]
paths: ["common/**", ".github/workflows/common.yaml"]
pull_request:
paths: ["common/**", ".github/workflows/common.yaml"]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pyproject_fmt_build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ on:
- major
push:
branches: ["main"]
paths: ["common/**", "pyproject-fmt/**", ".github/workflows/pyproject_fmt_build.yaml"]
pull_request:
paths: ["common/**", "pyproject-fmt/**", ".github/workflows/pyproject_fmt_build.yaml"]
schedule:
- cron: "0 8 * * *"

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pyproject_fmt_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ on:
workflow_dispatch:
push:
branches: ["main"]
paths: ["common/**", "pyproject-fmt/**", ".github/workflows/pyproject_fmt_test.yaml"]
pull_request:
paths: ["common/**", "pyproject-fmt/**", ".github/workflows/pyproject_fmt_test.yaml"]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down
245 changes: 245 additions & 0 deletions .github/workflows/tox_toml_fmt_build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
name: Build tox-toml-fmt
on:
workflow_dispatch:
inputs:
release:
description: "Cut a release (select semver bump)?"
required: true
default: "no"
type: choice
options:
- "no"
- patch
- minor
- major
push:
branches: ["main"]
paths: ["common/**", "tox-toml-fmt/**", ".github/workflows/tox_toml_fmt_build.yaml"]
pull_request:
paths: ["common/**", "tox-toml-fmt/**", ".github/workflows/tox_toml_fmt_build.yaml"]
schedule:
- cron: "0 8 * * *"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event.inputs.release == 'no' || github.event.inputs.release == null }}

permissions:
contents: read

jobs:
bump:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
version: ${{ steps.get-version.outputs.version }}
changelog: ${{ steps.get-version.outputs.changelog }}
steps:
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install cargo-edit from crates.io
uses: baptiste0928/cargo-install@v3
with:
crate: cargo-edit
- uses: actions/checkout@v4
- name: Bump version
run: cargo set-version -p tox-toml-fmt --bump '${{ github.event.inputs.release == 'no' || github.event.inputs.release == null && 'patch' || github.event.inputs.release }}'
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "tasks/changelog.py"
- name: Generate changelog
id: get-version
run: uv run tasks/changelog.py tox-toml-fmt "${{ github.event.number }}" "${{ github.event.pull_request.base.sha }}"
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: pre-commit/[email protected]
continue-on-error: true
- name: Show changes to the repository
run: git diff HEAD -u
- name: Store the patched distribution
uses: actions/upload-artifact@v4
with:
name: source
path: .
compression-level: 9
retention-days: 1
if-no-files-found: "error"

linux:
needs: [bump]
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
interpreter: "3.8 pypy3.8 pypy3.9 pypy3.10"
- runner: ubuntu-latest
target: x86
- runner: ubuntu-latest
target: x86_64-unknown-linux-musl
manylinux: musllinux_1_1
- runner: ubuntu-latest
target: i686-unknown-linux-musl
manylinux: musllinux_1_1
- runner: ubuntu-latest
target: aarch64
- runner: ubuntu-latest
target: armv7
- runner: ubuntu-latest
target: s390x
- runner: ubuntu-latest
target: ppc64le
steps:
- name: Download the code
uses: actions/download-artifact@v4
with:
name: source
- name: Build wheels
uses: PyO3/maturin-action@ea5bac0f1ccd0ab11c805e2b804bfcb65dac2eab

with:
target: ${{ matrix.platform.target }}
args: -m tox-toml-fmt/Cargo.toml --release --out dist --interpreter ${{ matrix.platform.interpreter || '3.8' }} --target-dir target
sccache: "true"
manylinux: ${{ matrix.platform.manylinux || 'auto' }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist

windows:
needs: [bump]
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
- runner: windows-latest
target: x86
steps:
- name: Download the code
uses: actions/download-artifact@v4
with:
name: source
- name: Build wheels
uses: PyO3/maturin-action@ea5bac0f1ccd0ab11c805e2b804bfcb65dac2eab

with:
target: ${{ matrix.platform.target }}
args: -m tox-toml-fmt/Cargo.toml --release --out dist --interpreter ${{ matrix.platform.interpreter || '3.8' }} --target-dir target
sccache: "true"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist

macos:
needs: [bump]
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-latest
target: x86_64
- runner: macos-14
target: aarch64
steps:
- name: Download the code
uses: actions/download-artifact@v4
with:
name: source
- name: Build wheels
uses: PyO3/maturin-action@ea5bac0f1ccd0ab11c805e2b804bfcb65dac2eab

with:
target: ${{ matrix.platform.target }}
args: -m tox-toml-fmt/Cargo.toml --release --out dist --interpreter "3.8 pypy3.8 pypy3.9 pypy3.10" --target-dir target
sccache: "true"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist

sdist:
needs: [bump]
runs-on: ubuntu-latest
steps:
- name: Download the code
uses: actions/download-artifact@v4
with:
name: source
- name: Build sdist
uses: PyO3/maturin-action@ea5bac0f1ccd0ab11c805e2b804bfcb65dac2eab

with:
command: sdist
args: -m tox-toml-fmt/Cargo.toml --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist

release:
name: Release
runs-on: ubuntu-latest
environment:
name: release
url: https://pypi.org/project/tox-toml-fmt/${{ needs.bump.outputs.version }}
permissions:
id-token: write
contents: write
if: github.event.inputs.release != 'no' && github.event.inputs.release != null && github.ref == 'refs/heads/main'
needs: [bump, sdist, linux, macos, windows]
steps:
- uses: actions/checkout@v4
- name: Download source
uses: actions/download-artifact@v4
with:
name: source
path: .
- name: Show changes to the repository
run: git diff HEAD -u
- name: Commit changes
run: |
git config --global user.name 'Bernat Gabor'
git config --global user.email '[email protected]'
git commit -am "Release tox-toml-fmt ${{needs.bump.outputs.version}}"
- name: Tag release
run: git tag tox-toml-fmt/${{needs.bump.outputs.version}}
- name: Download wheels
uses: actions/download-artifact@v4
with:
pattern: wheels-*
path: dist
merge-multiple: "true"
- name: Show wheels
run: ls -lth dist
- name: Publish to PyPI
uses: PyO3/maturin-action@ea5bac0f1ccd0ab11c805e2b804bfcb65dac2eab
with:
command: upload
args: --non-interactive --skip-existing dist/*
- name: Push release commit+tag and create GitHub release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git push
git push --tags
gh release create "tox-toml-fmt/${{needs.bump.outputs.version}}" \
--title="tox-toml-fmt/${{needs.bump.outputs.version}}" --verify-tag \
--notes "$(cat << 'EOM'
${{ needs.bump.outputs.changelog }}
EOM
)"
Loading

0 comments on commit f5afc78

Please sign in to comment.