Skip to content

Commit 156391d

Browse files
authored
Merge branch 'main' into cwl-v1.3
2 parents 03bafb0 + 270f9c6 commit 156391d

File tree

129 files changed

+1459
-2464
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+1459
-2464
lines changed

.git-blame-ignore-revs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@
66

77
# upgrade to black 23.1, longer lines (100)
88
7fe8c0739b0515d00daabc7db87bc5fad926d345
9+
10+
# upgrade to black 24
11+
80c9ec01b4602fc51ac1f53744f98df8baba3c31

.github/workflows/ci-tests.yml

Lines changed: 52 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,19 @@ jobs:
2828

2929
tox:
3030
name: Tox
31-
runs-on: ubuntu-20.04 # 22.04 doesn't support Python 3.6
31+
runs-on: ubuntu-22.04
3232
strategy:
3333
matrix:
3434
py-ver-major: [3]
35-
py-ver-minor: [6, 7, 8, 9, 10, 11]
35+
py-ver-minor: [8, 9, 10, 11, 12]
3636
step: [lint, unit, bandit, mypy]
37-
exclude:
38-
- py-ver-major: 3
39-
py-ver-minor: 6
40-
step: mypy
41-
- py-ver-major: 3
42-
py-ver-minor: 6
43-
step: lint
4437

4538
env:
4639
py-semver: ${{ format('{0}.{1}', matrix.py-ver-major, matrix.py-ver-minor) }}
4740
TOXENV: ${{ format('py{0}{1}-{2}', matrix.py-ver-major, matrix.py-ver-minor, matrix.step) }}
4841

4942
steps:
50-
- uses: actions/checkout@v3
43+
- uses: actions/checkout@v4
5144
with:
5245
fetch-depth: 0
5346

@@ -62,9 +55,10 @@ jobs:
6255
run: sudo usermod -c 'CI Runner' "$(whoami)"
6356

6457
- name: Set up Python
65-
uses: actions/setup-python@v4
58+
uses: actions/setup-python@v5
6659
with:
6760
python-version: ${{ env.py-semver }}
61+
allow-prereleases: true
6862
cache: pip
6963
cache-dependency-path: |
7064
requirements.txt
@@ -77,20 +71,21 @@ jobs:
7771
7872
- name: MyPy cache
7973
if: ${{ matrix.step == 'mypy' }}
80-
uses: actions/cache@v3
74+
uses: actions/cache@v4
8175
with:
8276
path: .mypy_cache/${{ env.py-semver }}
8377
key: mypy-${{ env.py-semver }}
8478

8579
- name: Test with tox
86-
run: tox
80+
run: APPTAINER_TMPDIR=${RUNNER_TEMP} tox
8781

8882
- name: Upload coverage to Codecov
8983
if: ${{ matrix.step == 'unit' }}
90-
uses: codecov/codecov-action@v3
84+
uses: codecov/codecov-action@v4
9185
with:
92-
fail_ci_if_error: false
93-
token: ${{ secrets.CODECOV_TOKEN }}
86+
fail_ci_if_error: true
87+
env:
88+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
9489

9590
tox-style:
9691
name: Linters
@@ -101,16 +96,16 @@ jobs:
10196
step: [lintreadme, shellcheck, pydocstyle]
10297

10398
env:
104-
py-semver: "3.11"
105-
TOXENV: ${{ format('py311-{0}', matrix.step) }}
99+
py-semver: "3.12"
100+
TOXENV: ${{ format('py312-{0}', matrix.step) }}
106101

107102
steps:
108-
- uses: actions/checkout@v3
103+
- uses: actions/checkout@v4
109104
with:
110105
fetch-depth: 0
111106

112107
- name: Set up Python
113-
uses: actions/setup-python@v4
108+
uses: actions/setup-python@v5
114109
with:
115110
python-version: ${{ env.py-semver }}
116111
cache: pip
@@ -131,9 +126,9 @@ jobs:
131126
name: No leftovers
132127
runs-on: ubuntu-22.04
133128
env:
134-
py-semver: "3.11"
129+
py-semver: "3.12"
135130
steps:
136-
- uses: actions/checkout@v3
131+
- uses: actions/checkout@v4
137132
with:
138133
fetch-depth: 0
139134

@@ -146,7 +141,7 @@ jobs:
146141
run: sudo usermod -c 'CI Runner' "$(whoami)"
147142

148143
- name: Set up Python
149-
uses: actions/setup-python@v4
144+
uses: actions/setup-python@v5
150145
with:
151146
python-version: ${{ env.py-semver }}
152147
cache: pip
@@ -162,7 +157,7 @@ jobs:
162157
chmod a-w .
163158
164159
- name: run tests
165-
run: make test
160+
run: APPTAINER_TMPDIR=${RUNNER_TEMP} make test
166161

167162

168163
conformance_tests:
@@ -180,7 +175,7 @@ jobs:
180175
extras: "--fast-parser"
181176

182177
steps:
183-
- uses: actions/checkout@v3
178+
- uses: actions/checkout@v4
184179

185180
- name: Set up Singularity
186181
if: ${{ matrix.container == 'singularity' }}
@@ -190,7 +185,7 @@ jobs:
190185
191186
- name: Singularity cache
192187
if: ${{ matrix.container == 'singularity' }}
193-
uses: actions/cache@v3
188+
uses: actions/cache@v4
194189
with:
195190
path: sifcache
196191
key: singularity
@@ -200,39 +195,46 @@ jobs:
200195
run: sudo rm -f /usr/bin/docker ; sudo apt-get install -y podman
201196

202197
- name: Set up Python
203-
uses: actions/setup-python@v4
198+
uses: actions/setup-python@v5
204199
with:
205-
python-version: 3.11
200+
python-version: 3.12
206201
cache: pip
207202

208203
- name: "Test CWL ${{ matrix.cwl-version }} conformance"
209204
env:
210205
VERSION: ${{ matrix.cwl-version }}
211206
CONTAINER: ${{ matrix.container }}
212207
GIT_TARGET: main
213-
CWLTOOL_OPTIONS: ${{ matrix.extras }}
208+
CWLTOOL_OPTIONS: ${{ matrix.cwl-version == 'v1.2' && '--relax-path-checks' || '' }} ${{ matrix.extras }}
214209
run: ./conformance-test.sh
210+
- name: Archive test results
211+
uses: actions/upload-artifact@v4
212+
with:
213+
name: cwl-${{ matrix.cwl-version }}-${{ matrix.container }}${{ matrix.extras }}-conformance-results
214+
path: |
215+
**/cwltool_conf*.xml
215216
- name: Upload coverage to Codecov
216-
uses: codecov/codecov-action@v3
217+
uses: codecov/codecov-action@v4
217218
with:
218-
fail_ci_if_error: false
219-
token: ${{ secrets.CODECOV_TOKEN }}
219+
fail_ci_if_error: true
220+
env:
221+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
220222
release_test:
221223
name: cwltool release test
222224
runs-on: ubuntu-22.04
223225

224226
steps:
225-
- uses: actions/checkout@v3
227+
- uses: actions/checkout@v4
226228

227229
- name: Set up Singularity
228230
run: |
229231
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v3.10.4/singularity-ce_3.10.4-jammy_amd64.deb
230232
sudo apt-get install -y ./singularity-ce_3.10.4-jammy_amd64.deb
231233
232234
- name: Set up Python
233-
uses: actions/setup-python@v4
235+
uses: actions/setup-python@v5
234236
with:
235-
python-version: 3.11
237+
python-version: 3.12
236238
cache: pip
237239
cache-dependency-path: |
238240
requirements.txt
@@ -254,23 +256,27 @@ jobs:
254256
build_test_container:
255257
runs-on: ubuntu-latest
256258
steps:
257-
- uses: actions/checkout@v3
259+
- uses: actions/checkout@v4
260+
with:
261+
fetch-depth: 0
262+
- name: record cwltool version
263+
run: pip install -U setuptools wheel && pip install setuptools_scm[toml] && python setup.py --version
258264
- name: build & test cwltool_module container
259265
run: ./build-cwltool-docker.sh
260266

261267
macos:
262268
name: Test on macos-latest
263-
runs-on: macos-latest
269+
runs-on: macos-13 # not latest, that is now an Apple Silicon M1, for which seqtk is not yet built on bioconda
264270
env:
265-
TOXENV: py311-unit
271+
TOXENV: py312-unit
266272
steps:
267-
- uses: actions/checkout@v3
273+
- uses: actions/checkout@v4
268274
with:
269275
fetch-depth: 0
270276
- name: Set up Python
271-
uses: actions/setup-python@v4
277+
uses: actions/setup-python@v5
272278
with:
273-
python-version: 3.11
279+
python-version: 3.12
274280
cache: pip
275281
cache-dependency-path: |
276282
requirements.txt
@@ -281,7 +287,7 @@ jobs:
281287
pip install "tox<4" "tox-gh-actions<3"
282288
# # docker for mac install is not currently stable
283289
# - name: 'SETUP MacOS: load Homebrew cache'
284-
# uses: actions/cache@v3
290+
# uses: actions/cache@v4
285291
# if: runner.os == 'macOS'
286292
# with:
287293
# path: |
@@ -293,7 +299,8 @@ jobs:
293299
- name: Test with tox
294300
run: tox
295301
- name: Upload coverage to Codecov
296-
uses: codecov/codecov-action@v3
302+
uses: codecov/codecov-action@v4
297303
with:
298-
fail_ci_if_error: false
299-
token: ${{ secrets.CODECOV_TOKEN }}
304+
fail_ci_if_error: true
305+
env:
306+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ jobs:
2323

2424
steps:
2525
- name: Checkout repository
26-
uses: actions/checkout@v3
26+
uses: actions/checkout@v4
2727

2828
# Initializes the CodeQL tools for scanning.
2929
- name: Initialize CodeQL
30-
uses: github/codeql-action/init@v2
30+
uses: github/codeql-action/init@v3
3131
with:
3232
languages: python
3333

3434
- name: Perform CodeQL Analysis
35-
uses: github/codeql-action/analyze@v2
35+
uses: github/codeql-action/analyze@v3

.github/workflows/quay-publish.yml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,39 @@ jobs:
88
build:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/checkout@v3
11+
- uses: actions/checkout@v4
12+
with:
13+
fetch-depth: 0
1214
- name: Get image tags
1315
id: image_tags
1416
run: |
15-
echo -n ::set-output "name=IMAGE_TAGS::${GITHUB_REF#refs/*/}"
17+
echo -n "IMAGE_TAGS=${GITHUB_REF#refs/*/}" >> "$GITHUB_OUTPUT"
18+
- name: record cwltool version
19+
run: |
20+
pip install "setuptools>=61"
21+
pip install setuptools_scm[toml] wheel
22+
python setup.py --version
1623
- name: Set up QEMU
17-
uses: docker/setup-qemu-action@v2
24+
uses: docker/setup-qemu-action@v3
1825
- name: Set up Docker Buildx
19-
uses: docker/setup-buildx-action@v2
26+
uses: docker/setup-buildx-action@v3
2027
- name: Cache Docker layers
21-
uses: actions/cache@v3
28+
uses: actions/cache@v4
2229
with:
2330
path: /tmp/.buildx-cache
2431
key: ${{ runner.os }}-multi-buildx-${{ github.sha }}
2532
restore-keys: |
2633
${{ runner.os }}-multi-buildx
2734
- name: Login to Quay.io
28-
uses: docker/login-action@v2
35+
uses: docker/login-action@v3
2936
with:
3037
registry: ${{ secrets.REGISTRY_SERVER }}
3138
username: ${{ secrets.REGISTRY_USERNAME }}
3239
password: ${{ secrets.REGISTRY_PASSWORD }}
3340
- name: Build and publish cwltool_module image to Quay
34-
uses: docker/build-push-action@v4
41+
uses: docker/build-push-action@v5
3542
with:
43+
context: .
3644
file: cwltool.Dockerfile
3745
tags: quay.io/commonwl/cwltool_module:${{ steps.image_tags.outputs.IMAGE_TAGS }},quay.io/commonwl/cwltool_module:latest
3846
target: module
@@ -41,8 +49,9 @@ jobs:
4149
cache-from: type=gha
4250
cache-to: type=gha,mode=max
4351
- name: Build and publish cwltool image to Quay
44-
uses: docker/build-push-action@v4
52+
uses: docker/build-push-action@v5
4553
with:
54+
context: .
4655
file: cwltool.Dockerfile
4756
tags: quay.io/commonwl/cwltool:${{ steps.image_tags.outputs.IMAGE_TAGS }},quay.io/commonwl/cwltool:latest
4857
platforms: linux/amd64,linux/arm64

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ value
5353

5454
.python-version
5555

56+
cwltool/_version.py
57+
5658
# Folder created when using make
5759
cwltool_deps
5860
docs/_build/

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Style guide:
22
- PEP-8 (as implemented by the `black` code formatting tool)
3-
- Python 3.6+ compatible code
3+
- Python 3.8+ compatible code
44
- PEP-484 type hints
55

66
The development is done using `git`, we encourage you to get familiar with it.

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ include README.rst CODE_OF_CONDUCT.md CONTRIBUTING.md
22
include MANIFEST.in
33
include LICENSE.txt
44
include *requirements.txt mypy.ini tox.ini
5-
include gittaggers.py Makefile cwltool.py
5+
include Makefile cwltool.py
66
recursive-include mypy-stubs *.pyi *.py
77
include tests/*
88
include tests/cwl-conformance/cwltool-conftest.py

0 commit comments

Comments
 (0)