Skip to content

Commit aeb5977

Browse files
committed
Add PyPI release workflow and prepare 0.1.0 release
Add release workflow triggered by GitHub releases that builds distributions, publishes to PyPI via trusted publishing (OIDC), and uploads assets to the release. Move changelog to repo root with docs inclusion via MyST directive.
1 parent e157494 commit aeb5977

File tree

3 files changed

+92
-13
lines changed

3 files changed

+92
-13
lines changed

.github/workflows/release.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: read
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
build:
16+
name: Build distribution
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
20+
with:
21+
fetch-depth: 0
22+
23+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
24+
with:
25+
python-version: "3.13"
26+
27+
- name: Build sdist and wheel
28+
run: pipx run build
29+
30+
- name: Upload distributions
31+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
32+
with:
33+
name: dist
34+
path: dist/
35+
36+
publish-pypi:
37+
name: Publish to PyPI
38+
runs-on: ubuntu-latest
39+
needs: [build]
40+
environment: pypi
41+
42+
permissions:
43+
id-token: write
44+
45+
steps:
46+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
47+
with:
48+
name: dist
49+
path: dist/
50+
51+
- uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
52+
with:
53+
packages-dir: dist/
54+
55+
upload-release-assets:
56+
name: Upload release assets
57+
runs-on: ubuntu-latest
58+
needs: [publish-pypi]
59+
60+
permissions:
61+
contents: write
62+
63+
steps:
64+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
65+
with:
66+
name: dist
67+
path: dist/
68+
69+
- name: Upload assets to GitHub Release
70+
env:
71+
GH_TOKEN: ${{ github.token }}
72+
GH_REPO: ${{ github.repository }}
73+
TAG_NAME: ${{ github.event.release.tag_name }}
74+
run: gh release upload "$TAG_NAME" dist/* --repo "$GH_REPO"

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Changelog
2+
3+
## Unreleased
4+
5+
## 0.1.0 — 2026-03-05
6+
7+
- Initial implementation of `conda task` subcommand
8+
- Support for `pixi.toml`, `conda.toml`, `pyproject.toml`, and `.condarc`
9+
- Task dependency graphs with topological sorting
10+
- Jinja2 template rendering with `conda.*` context variables
11+
- Task argument system with defaults
12+
- File-based caching with inputs/outputs fingerprinting
13+
- Platform-specific task overrides
14+
- Conda environment activation for task execution
15+
- `conda task run`, `list`, `add`, `remove` subcommands
16+
- PyPI release workflow with trusted publishing

docs/changelog.md

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,2 @@
1-
# Changelog
2-
3-
## Unreleased
4-
5-
- Initial implementation of `conda task` subcommand
6-
- Support for `pixi.toml`, `conda.toml`, `pyproject.toml`, and `.condarc`
7-
- Task dependency graphs with topological sorting
8-
- Jinja2 template rendering with `conda.*` context variables
9-
- Task argument system with defaults
10-
- File-based caching with inputs/outputs fingerprinting
11-
- Platform-specific task overrides
12-
- Conda environment activation for task execution
13-
- `conda task run`, `list`, `add`, `remove` subcommands
1+
```{include} ../CHANGELOG.md
2+
```

0 commit comments

Comments
 (0)