-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (110 loc) · 3.29 KB
/
Copy pathrelease.yml
File metadata and controls
134 lines (110 loc) · 3.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: Release
on:
push:
tags:
- "v*.*.*"
permissions:
contents: read
jobs:
tests:
name: Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m pip install -e ".[dev]"
- name: Validate release version
run: python .github/scripts/validate_version.py --release-tag
- name: Run tests
run: python -m pytest tests/ -v
build:
name: Build distributions
needs: tests
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
- name: Install packaging tools
run: |
python -m pip install --upgrade pip
python -m pip install build twine
- name: Validate release version
run: python .github/scripts/validate_version.py --release-tag
- name: Build distributions
run: python -m build
- name: Check distributions
run: python -m twine check dist/*
- name: Smoke test built wheel
run: |
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m pip install dist/*.whl --no-deps
python -c "import torchextractx; from torchextractx import ExtraContext; print(torchextractx.__version__); print(ExtraContext)"
- name: Upload distributions
uses: actions/upload-artifact@v4
with:
name: python-distributions
path: dist/*
if-no-files-found: error
github-release:
name: GitHub Release
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Download distributions
uses: actions/download-artifact@v4
with:
name: python-distributions
path: dist
- name: Create GitHub release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
TAG_NAME: ${{ github.ref_name }}
run: |
gh release create "$TAG_NAME" dist/* \
--repo "$REPO" \
--title "$TAG_NAME" \
--notes-file CHANGELOG.md
pypi-publish:
name: Publish to PyPI
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/torchextractx/
permissions:
id-token: write
steps:
- name: Download distributions
uses: actions/download-artifact@v4
with:
name: python-distributions
path: dist
- name: Publish distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1