-
Notifications
You must be signed in to change notification settings - Fork 85
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
126 lines (117 loc) · 3.31 KB
/
.gitlab-ci.yml
File metadata and controls
126 lines (117 loc) · 3.31 KB
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
# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
stages:
- lint # Fastest check first
- test # Then test
- build # build package and documentation when verified correct
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
cache:
paths:
- .cache/pip
test:
stage: test
image: "python:$VERSION"
rules:
# Run on a Merge Request to the default branch
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
# Run on new commits to the default branch
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
parallel:
matrix:
- VERSION: ['3.8', '3.9', '3.10', '3.11', '3.12']
before_script:
# Python info
- which python
- python --version
# Install dependencies
- python -m pip install --upgrade pip setuptools
- python -m pip install --editable .[dev]
script:
# Run pytest
- python -m pytest -v --durations=0
cffconvert:
stage: lint
image:
name: "citationcff/cffconvert:2.0.0"
entrypoint: [""]
rules:
# Run on a Merge Request to the default branch
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
# Run on new commits to the default branch
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
changes:
- CITATION.cff
script:
# Check whether the citation metadata from CITATION.cff is valid
- cffconvert --validate
markdown-link-check:
stage: lint
image:
name: "lycheeverse/lychee"
entrypoint: [""]
rules:
# Run on a Merge Request to the default branch
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
# Run on new commits to the default branch
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script:
- lychee .
lint:
stage: lint
image: "python:3.12"
rules:
# Run on a Merge Request to the default branch
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
# Run on new commits to the default branch
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
before_script:
# Python info
- which python
- python --version
# Install dependencies
- python -m pip install ruff
script:
# Run pytest
- ruff check
- ruff format --check
build:
stage: build
image: "python:$VERSION"
rules:
# Run on a Merge Request to the default branch
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
# Run on new commits to the default branch
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
parallel:
matrix:
- VERSION: ['3.8', '3.9', '3.10', '3.11', '3.12']
before_script:
# Python info
- which python
- python --version
# Install dependencies
- python -m pip install --upgrade pip setuptools
- python -m pip install --editable .[publishing]
script:
# Run pytest
- python -m build
documentation:
stage: build
image: "python:3.12"
rules:
# Run on a Merge Request to the default branch
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
# Run on new commits to the default branch
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
before_script:
# Python info
- which python
- python --version
# Install dependencies
- python -m pip install .[docs]
- sudo apt install pandoc
script:
# Run pytest
- cd docs
- make coverage doctest html