-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (122 loc) · 3.5 KB
/
publish.yml
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
name: 📦 tsv2py
on:
push:
paths:
- /lib/**
- /tsv/**
workflow_dispatch:
inputs:
publish-to-github:
type: boolean
description: 'Publish to GitHub'
required: true
default: false
jobs:
build-linux:
name: 🧱 [Linux] Build and store distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.8"
- name: Install pypa/build
run: |
python3 -m pip install --user build cibuildwheel
- name: Create source distribution
run: |
python3 -m build --sdist --outdir wheelhouse
- name: Create binary distribution
env:
CIBW_PLATFORM: linux
run: |
cibuildwheel
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: tsv2py-linux
path: wheelhouse/
retention-days: 1
compression-level: 0
build-macos:
name: 🧱 [macOS] Build and store distribution
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.8"
- name: Install pypa/build
run: |
python3 -m pip install --user cibuildwheel
- name: Create binary distribution
env:
CIBW_PLATFORM: macos
run: |
python3 -m cibuildwheel
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: tsv2py-macos
path: wheelhouse/
retention-days: 1
compression-level: 0
build-windows:
name: 🧱 [Windows] Build and store distribution
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.8"
- name: Install pypa/build
run: |
python3 -m pip install --user cibuildwheel
- name: Create binary distribution
env:
CIBW_PLATFORM: windows
run: |
cibuildwheel
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: tsv2py-windows
path: wheelhouse/
retention-days: 1
compression-level: 0
github-release:
name: 📝 GitHub Release signed with Sigstore
if: ${{ inputs.publish-to-github }}
needs:
- build-linux
- build-macos
- build-windows
runs-on: ubuntu-latest
permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore
steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
path: dist/
merge-multiple: true
- name: Sign the dists with Sigstore
uses: sigstore/[email protected]
with:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: >-
gh release create
`ls -1 dist/*.tar.gz | grep -Eo '[0-9]+[.][0-9]+[.][0-9]+'` dist/**
--repo '${{ github.repository }}' --notes ''