-
Notifications
You must be signed in to change notification settings - Fork 7
133 lines (116 loc) · 3.6 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
133
# Inspired by: https://github.com/pypa/hatch/blob/6322daba750f8db73361fa1aaa965bc99605303b/.github/workflows/build-hatch.yml
name: build mreg-cli
on:
push:
tags:
- mreg-cli-v*
branches:
- publishing
concurrency:
group: build-mreg-cli-${{ github.head_ref }}
jobs:
build_pypi:
name: Build wheels and source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# # Only release from master branch
# # https://stackoverflow.com/a/74690436
# - name: Exit if not on master branch
# if: endsWith(github.event.base_ref, 'master') == false
# run: exit -1
- name: Install build dependencies
run: python -m pip install --upgrade build
- name: Build source distribution
run: python -m build
- uses: actions/upload-artifact@v4
with:
name: pypi_artifacts
path: dist/*
if-no-files-found: error
build_pyinstaller:
name: Build pyinstaller binary
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest]
python-version:
- '3.12'
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Run PyInstaller with Tox
run: |
python -m ensurepip --upgrade
python -m pip install tox tox-uv tox-gh-actions
tox
- uses: actions/upload-artifact@v4
name: Upload created binary
with:
name: mreg-cli-${{ matrix.os }}-${{ matrix.python-version }}
path: dist/mreg-cli${{ contains(matrix.os, 'windows') && '.exe' || '' }}
if-no-files-found: error
publish_pypi:
name: Publish PyPI release
needs:
- build_pypi
runs-on: ubuntu-latest
# environment:
# name: pypi
# url: https://pypi.org/p/mreg-cli
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
name: pypi_artifacts
path: dist
- name: Push build artifacts to PyPI
uses: pypa/[email protected]
with:
# skip-existing: true
# user: __token__
# password: ${{ secrets.PYPI_API_TOKEN_TEST }}
# verbose: true
repository-url: https://test.pypi.org/legacy/
# publish_github:
# name: Publish GitHub release
# needs:
# - build_pypi
# - build_pyinstaller
# runs-on: ubuntu-latest
# steps:
# - name: Download staged binaries
# uses: actions/download-artifact@v4
# with:
# pattern: mreg-cli-*
# path: dist
# merge-multiple: true
# - name: Download wheel and source distributions
# uses: actions/download-artifact@v4
# with:
# pattern: pypi_artifacts/*
# path: dist
# merge-multiple: true
# - name: Create GitHub release
# id: create_release
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: ${{ github.ref }}
# release_name: Release ${{ github.ref }}
# body: |
# Release notes for ${{ github.ref }}
# draft: false
# prerelease: true
# - name: Upload release asset
# id: upload-release-asset
# uses: softprops/action-gh-release@v2
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# files: dist/*