Skip to content

Commit 2f47e7c

Browse files
Merge pull request #375 from wphillipmoore/release/1.2.0
release: 1.2.0
2 parents b40b754 + a9e40c2 commit 2f47e7c

6 files changed

Lines changed: 213 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 108 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,110 @@ jobs:
236236
with:
237237
language: python
238238

239+
sonarcloud:
240+
name: "quality: sonarcloud"
241+
runs-on: ubuntu-latest
242+
needs: docs-only
243+
steps:
244+
- name: Docs-only short-circuit
245+
if: needs.docs-only.outputs.docs-only == 'true'
246+
run: echo "Docs-only changes detected; skipping SonarCloud."
247+
248+
- name: Checkout code
249+
if: needs.docs-only.outputs.docs-only != 'true'
250+
uses: actions/checkout@v6
251+
with:
252+
fetch-depth: 0
253+
254+
- name: Set up Python
255+
if: needs.docs-only.outputs.docs-only != 'true'
256+
uses: wphillipmoore/standard-actions/actions/python/setup@develop
257+
with:
258+
python-version: "3.14"
259+
260+
- name: Install dependencies
261+
if: needs.docs-only.outputs.docs-only != 'true'
262+
run: uv sync --frozen --group dev
263+
264+
- name: Run tests with coverage
265+
if: needs.docs-only.outputs.docs-only != 'true'
266+
run: |
267+
uv run pytest \
268+
--cov=pymqrest \
269+
--cov-report=xml \
270+
--cov-branch
271+
272+
- name: Run SonarCloud scan
273+
if: needs.docs-only.outputs.docs-only != 'true'
274+
uses: wphillipmoore/standard-actions/actions/quality/sonarcloud@develop
275+
with:
276+
sonar-token: ${{ secrets.SONAR_TOKEN }}
277+
organization: wphillipmoore
278+
project-key: wphillipmoore_mq-rest-admin-python
279+
sources: "src"
280+
tests: "tests"
281+
coverage-report: "coverage.xml"
282+
283+
codeclimate:
284+
name: "quality: codeclimate"
285+
runs-on: ubuntu-latest
286+
needs: docs-only
287+
permissions:
288+
contents: read
289+
id-token: write
290+
steps:
291+
- name: Docs-only short-circuit
292+
if: needs.docs-only.outputs.docs-only == 'true'
293+
run: echo "Docs-only changes detected; skipping Code Climate."
294+
295+
- name: Checkout code
296+
if: needs.docs-only.outputs.docs-only != 'true'
297+
uses: actions/checkout@v6
298+
299+
- name: Set up Python
300+
if: needs.docs-only.outputs.docs-only != 'true'
301+
uses: wphillipmoore/standard-actions/actions/python/setup@develop
302+
with:
303+
python-version: "3.14"
304+
305+
- name: Install dependencies
306+
if: needs.docs-only.outputs.docs-only != 'true'
307+
run: uv sync --frozen --group dev
308+
309+
- name: Run tests with coverage
310+
if: needs.docs-only.outputs.docs-only != 'true'
311+
run: |
312+
uv run pytest \
313+
--cov=pymqrest \
314+
--cov-report=lcov \
315+
--cov-branch
316+
317+
- name: Upload coverage to Qlty Cloud
318+
if: needs.docs-only.outputs.docs-only != 'true'
319+
uses: wphillipmoore/standard-actions/actions/quality/codeclimate@develop
320+
with:
321+
files: "coverage.lcov"
322+
239323
integration-tests:
240-
name: "test: integration"
324+
name: "test: integration (${{ matrix.python-version }})"
241325
runs-on: ubuntu-latest
242326
needs: docs-only
327+
strategy:
328+
matrix:
329+
include:
330+
- python-version: "3.12"
331+
project-suffix: "3-12"
332+
qm1-rest-port: "9447"
333+
qm2-rest-port: "9448"
334+
- python-version: "3.13"
335+
project-suffix: "3-13"
336+
qm1-rest-port: "9449"
337+
qm2-rest-port: "9450"
338+
- python-version: "3.14"
339+
project-suffix: "3-14"
340+
qm1-rest-port: "9451"
341+
qm2-rest-port: "9452"
342+
243343
steps:
244344
- name: Docs-only short-circuit
245345
if: needs.docs-only.outputs.docs-only == 'true'
@@ -253,7 +353,7 @@ jobs:
253353
if: needs.docs-only.outputs.docs-only != 'true'
254354
uses: wphillipmoore/standard-actions/actions/python/setup@develop
255355
with:
256-
python-version: "3.14"
356+
python-version: ${{ matrix.python-version }}
257357

258358
- name: Install dependencies
259359
if: needs.docs-only.outputs.docs-only != 'true'
@@ -263,10 +363,15 @@ jobs:
263363
if: needs.docs-only.outputs.docs-only != 'true'
264364
uses: wphillipmoore/mq-rest-admin-dev-environment/.github/actions/setup-mq@main
265365
with:
266-
project-name: pymqrest
366+
project-name: pymqrest-${{ matrix.project-suffix }}
367+
qm1-rest-port: ${{ matrix.qm1-rest-port }}
368+
qm2-rest-port: ${{ matrix.qm2-rest-port }}
267369

268370
- name: Run integration tests
269371
if: needs.docs-only.outputs.docs-only != 'true'
372+
env:
373+
MQ_REST_BASE_URL: https://localhost:${{ matrix.qm1-rest-port }}/ibmmq/rest/v2
374+
MQ_REST_BASE_URL_QM2: https://localhost:${{ matrix.qm2-rest-port }}/ibmmq/rest/v2
270375
run: |
271376
MQ_SKIP_LIFECYCLE=1 \
272377
PYMQREST_RUN_INTEGRATION=1 \

.github/workflows/codeclimate.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Code Climate
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
8+
permissions:
9+
contents: read
10+
id-token: write
11+
12+
concurrency:
13+
group: codeclimate
14+
cancel-in-progress: false
15+
16+
jobs:
17+
codeclimate:
18+
name: "quality: codeclimate"
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@v6
23+
24+
- name: Set up Python
25+
uses: wphillipmoore/standard-actions/actions/python/setup@develop
26+
with:
27+
python-version: "3.14"
28+
29+
- name: Install dependencies
30+
run: uv sync --frozen --group dev
31+
32+
- name: Run tests with coverage
33+
run: |
34+
uv run pytest \
35+
--cov=pymqrest \
36+
--cov-report=lcov \
37+
--cov-branch
38+
39+
- name: Upload coverage to Qlty Cloud
40+
uses: wphillipmoore/standard-actions/actions/quality/codeclimate@develop
41+
with:
42+
files: "coverage.lcov"

.github/workflows/sonarcloud.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: SonarCloud
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: sonarcloud
13+
cancel-in-progress: false
14+
15+
jobs:
16+
sonarcloud:
17+
name: "quality: sonarcloud"
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v6
22+
with:
23+
fetch-depth: 0
24+
25+
- name: Set up Python
26+
uses: wphillipmoore/standard-actions/actions/python/setup@develop
27+
with:
28+
python-version: "3.14"
29+
30+
- name: Install dependencies
31+
run: uv sync --frozen --group dev
32+
33+
- name: Run tests with coverage
34+
run: |
35+
uv run pytest \
36+
--cov=pymqrest \
37+
--cov-report=xml \
38+
--cov-branch
39+
40+
- name: Run SonarCloud scan
41+
uses: wphillipmoore/standard-actions/actions/quality/sonarcloud@develop
42+
with:
43+
sonar-token: ${{ secrets.SONAR_TOKEN }}
44+
organization: wphillipmoore
45+
project-key: wphillipmoore_mq-rest-admin-python
46+
sources: "src"
47+
tests: "tests"
48+
coverage-report: "coverage.xml"

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](https://semver.org/).
77

8+
## [1.2.0] - 2026-02-24
9+
10+
### CI
11+
12+
- add SonarCloud quality analysis to CI (#366)
13+
- add SonarCloud post-merge workflow (#367)
14+
- add Code Climate (Qlty) coverage upload (#369)
15+
- assign unique REST API ports per integration test matrix entry (#372)
16+
17+
### Features
18+
19+
- run integration tests with same Python version matrix as unit tests (#370)
20+
821
## [1.1.11] - 2026-02-23
922

1023
### Bug fixes

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "pymqrest"
7-
version = "1.1.11"
7+
version = "1.2.0"
88
description = "Python wrapper for the IBM MQ REST API"
99
readme = "README.md"
1010
license = "GPL-3.0-or-later"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)