Skip to content

Commit d40a3f9

Browse files
Package and publish (#898)
* project: move to handle defining version in pyproject * change version to be dynamic again * remove deprecated mailer plugin * ci: add release gha * Revert "change version to be dynamic again" This reverts commit 8e62179. * bump to 0.3.14dev1 * ci: fix gha syntax * ci: fix gha syntax * ci: fix gha syntax * ci: fix gha syntax * CHANGELOG: md style * convert updates.jenkins.io to use https:// - getting denials * update inject and bootstrap5
1 parent 47e0174 commit d40a3f9

File tree

10 files changed

+133
-59
lines changed

10 files changed

+133
-59
lines changed

.github/workflows/python-package.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
2-
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3-
41
name: CI_TEST
52

63
on:

.github/workflows/release.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- '[0-9]+.[0-9]+.[0-9]+'
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
15+
- name: Install uv
16+
uses: astral-sh/setup-uv@v5
17+
with:
18+
python-version: "3.13"
19+
enable-cache: true
20+
21+
- name: Install python
22+
run: uv python install
23+
24+
- name: build
25+
run: uv build
26+
27+
- name: Upload artifact
28+
uses: actions/upload-artifact@v4
29+
with:
30+
name: package
31+
path: dist/
32+
retention-days: 7
33+
if-no-files-found: error
34+
35+
pypi:
36+
needs: [build]
37+
runs-on: ubuntu-latest
38+
permissions:
39+
id-token: write
40+
environment:
41+
name: pypi-publishing
42+
url: https://pypi.org/project/jenkinsapi/
43+
steps:
44+
- name: Download artifact
45+
uses: actions/download-artifact@v4
46+
with:
47+
name: package
48+
path: dist
49+
50+
- name: Show tree
51+
run: tree
52+
53+
- name: Publish
54+
uses: pypa/gh-action-pypi-publish@release/v1
55+
56+
asset:
57+
needs: [build]
58+
runs-on: ubuntu-latest
59+
permissions:
60+
contents: write
61+
steps:
62+
- name: Download artifact
63+
uses: actions/download-artifact@v4
64+
with:
65+
name: package
66+
path: dist
67+
68+
- name: Show tree
69+
run: tree
70+
71+
- name: Add release asset
72+
uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0
73+
with:
74+
tag_name: ${{ github.event.release.tag_name }}
75+
fail_on_unmatched_files: true
76+
files: |
77+
dist/*

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,4 @@ coverage.xml
3131
venv/
3232
tags
3333
.pytype/
34+
uv.lock

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Changelog
22

3+
## 3.3.13
4+
35
- feature: add launch method to Node class (#849)
46
- convert to using ruff for linting (#895)
57
- update harden runner (#894)

jenkinsapi/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,5 +92,3 @@
9292
"view",
9393
]
9494
__docformat__ = "epytext"
95-
# In case of jenkinsapi is not installed in 'develop' mode
96-
__version__ = "0.3.13"

jenkinsapi/utils/jenkins_launcher.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def run(self):
4848
log.info("Starting %s", self.name)
4949

5050
while True:
51-
if self._stop.isSet():
51+
if self._stop.is_set():
5252
break
5353
line = self.stream.readline()
5454
if line:

jenkinsapi_tests/systests/conftest.py

Lines changed: 48 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -13,59 +13,58 @@
1313

1414
# Extra plugins required by the systests
1515
PLUGIN_DEPENDENCIES = [
16-
"http://updates.jenkins.io/latest/"
16+
"https://updates.jenkins.io/latest/"
1717
"apache-httpcomponents-client-4-api.hpi",
18-
"http://updates.jenkins.io/latest/jsch.hpi",
19-
"http://updates.jenkins.io/latest/gson-api.hpi",
20-
"http://updates.jenkins.io/latest/trilead-api.hpi",
21-
"http://updates.jenkins.io/latest/workflow-api.hpi",
22-
"http://updates.jenkins.io/latest/display-url-api.hpi",
23-
"http://updates.jenkins.io/latest/workflow-step-api.hpi",
24-
"http://updates.jenkins.io/latest/workflow-scm-step.hpi",
25-
"http://updates.jenkins.io/latest/junit.hpi",
26-
"http://updates.jenkins.io/latest/script-security.hpi",
27-
"http://updates.jenkins.io/latest/matrix-project.hpi",
28-
"http://updates.jenkins.io/latest/credentials.hpi",
29-
"http://updates.jenkins.io/latest/variant.hpi",
30-
"http://updates.jenkins.io/latest/ssh-credentials.hpi",
31-
"http://updates.jenkins.io/latest/asm-api.hpi",
32-
"http://updates.jenkins.io/latest/scm-api.hpi",
33-
"http://updates.jenkins.io/latest/mailer.hpi",
34-
"http://updates.jenkins.io/latest/git.hpi",
35-
"http://updates.jenkins.io/latest/git-client.hpi",
36-
"http://updates.jenkins.io/latest/jakarta-mail-api.hpi",
18+
"https://updates.jenkins.io/latest/jsch.hpi",
19+
"https://updates.jenkins.io/latest/gson-api.hpi",
20+
"https://updates.jenkins.io/latest/trilead-api.hpi",
21+
"https://updates.jenkins.io/download/plugins/bootstrap5-api/5.3.3-2/bootstrap5-api.hpi",
22+
"https://updates.jenkins.io/latest/workflow-api.hpi",
23+
"https://updates.jenkins.io/latest/display-url-api.hpi",
24+
"https://updates.jenkins.io/latest/workflow-step-api.hpi",
25+
"https://updates.jenkins.io/latest/workflow-scm-step.hpi",
26+
"https://updates.jenkins.io/latest/junit.hpi",
27+
"https://updates.jenkins.io/latest/script-security.hpi",
28+
"https://updates.jenkins.io/latest/matrix-project.hpi",
29+
"https://updates.jenkins.io/latest/credentials.hpi",
30+
"https://updates.jenkins.io/latest/variant.hpi",
31+
"https://updates.jenkins.io/latest/ssh-credentials.hpi",
32+
"https://updates.jenkins.io/latest/asm-api.hpi",
33+
"https://updates.jenkins.io/latest/scm-api.hpi",
34+
"https://updates.jenkins.io/latest/git.hpi",
35+
"https://updates.jenkins.io/latest/git-client.hpi",
36+
"https://updates.jenkins.io/latest/jakarta-mail-api.hpi",
3737
"https://updates.jenkins.io/latest/nested-view.hpi",
3838
"https://updates.jenkins.io/latest/ssh-slaves.hpi",
3939
"https://updates.jenkins.io/latest/structs.hpi",
40-
"http://updates.jenkins.io/latest/plain-credentials.hpi",
41-
"http://updates.jenkins.io/latest/envinject.hpi",
42-
"http://updates.jenkins.io/latest/envinject-api.hpi",
43-
"http://updates.jenkins.io/latest/jdk-tool.hpi",
44-
"http://updates.jenkins.io/latest/credentials-binding.hpi",
45-
"http://updates.jenkins.io/latest/jakarta-activation-api.hpi",
46-
"http://updates.jenkins.io/latest/caffeine-api.hpi",
47-
"http://updates.jenkins.io/latest/script-security.hpi",
48-
"http://updates.jenkins.io/latest/checks-api.hpi",
49-
"http://updates.jenkins.io/latest/json-api.hpi",
50-
"http://updates.jenkins.io/latest/jackson2-api.hpi",
51-
"http://updates.jenkins.io/latest/bootstrap5-api.hpi",
52-
"http://updates.jenkins.io/latest/echarts-api.hpi",
53-
"http://updates.jenkins.io/latest/ionicons-api.hpi",
54-
"http://updates.jenkins.io/latest/plugin-util-api.hpi",
55-
"http://updates.jenkins.io/latest/mina-sshd-api-core.hpi",
56-
"http://updates.jenkins.io/latest/mina-sshd-api-common.hpi",
57-
"http://updates.jenkins.io/latest/font-awesome-api.hpi",
58-
"http://updates.jenkins.io/latest/popper2-api.hpi",
59-
"http://updates.jenkins.io/latest/commons-text-api.hpi",
60-
"http://updates.jenkins.io/latest/commons-lang3-api.hpi",
61-
"http://updates.jenkins.io/latest/plugin-util-api.hpi",
62-
"http://updates.jenkins.io/latest/snakeyaml-api.hpi",
63-
"http://updates.jenkins.io/latest/workflow-support.hpi",
64-
"http://updates.jenkins.io/latest/jquery3-api.hpi",
65-
"http://updates.jenkins.io/latest/checks-api.hpi",
66-
"http://updates.jenkins.io/latest/javax-activation-api.hpi",
67-
"http://updates.jenkins.io/latest/jaxb.hpi",
68-
"http://updates.jenkins.io/latest/instance-identity.hpi",
40+
"https://updates.jenkins.io/latest/plain-credentials.hpi",
41+
"https://updates.jenkins.io/download/plugins/envinject/2.922.v2274200dd258/envinject.hpi",
42+
"https://updates.jenkins.io/latest/envinject-api.hpi",
43+
"https://updates.jenkins.io/latest/jdk-tool.hpi",
44+
"https://updates.jenkins.io/latest/credentials-binding.hpi",
45+
"https://updates.jenkins.io/latest/jakarta-activation-api.hpi",
46+
"https://updates.jenkins.io/latest/caffeine-api.hpi",
47+
"https://updates.jenkins.io/latest/script-security.hpi",
48+
"https://updates.jenkins.io/latest/checks-api.hpi",
49+
"https://updates.jenkins.io/latest/json-api.hpi",
50+
"https://updates.jenkins.io/latest/jackson2-api.hpi",
51+
"https://updates.jenkins.io/latest/echarts-api.hpi",
52+
"https://updates.jenkins.io/latest/ionicons-api.hpi",
53+
"https://updates.jenkins.io/latest/plugin-util-api.hpi",
54+
"https://updates.jenkins.io/latest/mina-sshd-api-core.hpi",
55+
"https://updates.jenkins.io/latest/mina-sshd-api-common.hpi",
56+
"https://updates.jenkins.io/latest/font-awesome-api.hpi",
57+
"https://updates.jenkins.io/latest/popper2-api.hpi",
58+
"https://updates.jenkins.io/latest/commons-text-api.hpi",
59+
"https://updates.jenkins.io/latest/commons-lang3-api.hpi",
60+
"https://updates.jenkins.io/latest/plugin-util-api.hpi",
61+
"https://updates.jenkins.io/latest/snakeyaml-api.hpi",
62+
"https://updates.jenkins.io/latest/workflow-support.hpi",
63+
"https://updates.jenkins.io/latest/jquery3-api.hpi",
64+
"https://updates.jenkins.io/latest/checks-api.hpi",
65+
"https://updates.jenkins.io/latest/javax-activation-api.hpi",
66+
"https://updates.jenkins.io/latest/jaxb.hpi",
67+
"https://updates.jenkins.io/latest/instance-identity.hpi",
6968
]
7069

7170

jenkinsapi_tests/systests/test_plugins.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def test_plugin_data(jenkins):
1717
jenkins.plugins.check_updates_server()
1818
jenkins.requester.timeout = timeout
1919

20-
assert "mailer" in jenkins.plugins
20+
assert "workflow-api" in jenkins.plugins
2121

2222

2323
def test_get_missing_plugin(jenkins):

jenkinsapi_tests/unittests/test_misc.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
import importlib.metadata
12
import jenkinsapi
23

34

45
def test_jenkinsapi_version():
56
"""Verify that we can get the jenkinsapi version number from the
67
package's __version__ property.
78
"""
8-
version = jenkinsapi.__version__
9+
version = importlib.metadata.version("jenkinsapi")
910
# only first two parts must be interger, 1.0.dev5 being a valid version.
1011
parts = [int(x) for x in version.split(".")[0:2]]
1112
for part in parts:

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ build-backend = "flit_core.buildapi"
44

55
[project]
66
name = "jenkinsapi"
7+
version = "0.3.14dev1"
78
authors = [
89
{name = "Salim Fadhley", email = "[email protected]"},
910
{name = "Aleksey Maksimov", email = "[email protected]"},
@@ -37,7 +38,6 @@ classifiers = [
3738
"Topic :: Utilities",
3839
]
3940
requires-python = ">=3.8"
40-
dynamic = ["version"]
4141
dependencies = [
4242
"pytz>=2014.4",
4343
"requests>=2.3.0",
@@ -53,7 +53,6 @@ warnerrors = "True"
5353

5454
[project.scripts]
5555
jenkins_invoke = "jenkinsapi.command_line.jenkins_invoke:main"
56-
jenkinsapi_version = "jenkinsapi.command_line.jenkinsapi_version:main"
5756

5857
[tool.build_sphinx]
5958
source-dir = "doc/source"

0 commit comments

Comments
 (0)