-
Notifications
You must be signed in to change notification settings - Fork 10
/
.gitlab-ci.yml
118 lines (109 loc) · 3.75 KB
/
.gitlab-ci.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
# [1] GitLab page: https://docs.gitlab.com/ee/ci/yaml/#pages
# [2] CI stages: https://docs.gitlab.com/ee/ci/yaml/#stages
# [3] Tags: https://docs.gitlab.com/ee/ci/yaml/#tags
.run_tests_rules: &run_tests_rules
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- when: never
# ===== CHECK FORMATTING =====
test_topfarm_pep8: # name the job what we like
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]
test
script:
- pixi run -e default pycodestyle --ignore=E501,W504 --exclude="*Colonel*" topfarm
tags: # only runners with this tag can do the job [3]
- linux
<<: *run_tests_rules
# ===== TEST TOPFARM =====
test_topfarm:
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]
test
script:
- pixi run test-all
tags: # only runners with this tag can do the job [3]
- linux
<<: *run_tests_rules
# ===== TEST TOPFARM ON WINDOWS =====
test_topfarm_windows: # name the job what we like
variables:
GIT_SUBMODULE_STRATEGY: normal
GIT_CLEAN_FLAGS: -ffdx -e .pixi/
stage: # build, test, deploy defined by default [2]
test
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
script: # runs on windows machine due to tag below
- setx PIXI_CACHE_DIR D:\.pixi_cache
- $env:PIXI_CACHE_DIR = [System.Environment]::GetEnvironmentVariable("PIXI_CACHE_DIR","User") # update PIXI_CACHE_DIR in current shell
- C:\Users\ernim\.pixi\bin\pixi.exe run pip install -e .
- C:\Users\ernim\.pixi\bin\pixi.exe run test-all
tags: # tag for shared runner on windows machine
- ANMH_old
<<: *run_tests_rules
# ===== TRIGGER TRIGGERHUB PIPELINE =====
trigger_hub_test:
stage: test
variables:
TRIGGER_BRANCH: $CI_COMMIT_REF_NAME
trigger:
project: TOPFARMPrivate/triggerhub/topfarmtriggers
strategy: depend
only:
- master
# ===== TEST TOPFARM DEPLOY =====
test_topfarm_deploy:
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]
deploy
script:
- rm -rf topfarm/examples/input_ts.csv # reduce upload size 75%
- pixi run -e default hatch build
- pixi run -e default hatch publish -r test -u $HATCH_INDEX_USER -a $HATCH_INDEX_AUTH
tags: # only runners with this tag can do the job [3]
- linux
only:
- master
# ===== BUILD WHEELS AND UPLOAD TO PYPI =====
pypi_deploy:
image: ghcr.io/prefix-dev/pixi:latest
stage: deploy
script:
- eval "$(pixi shell-hook -e default)"
- export SETUPTOOLS_SCM_PRETEND_VERSION=$(hatch version | sed 's/\.post0$//') # remove post for pypi
- echo $SETUPTOOLS_SCM_PRETEND_VERSION # pypi version
- hatch build
- hatch publish -u $TWINE_USERNAME -a $TWINE_PASSWORD
tags:
- linux
only:
- tags
# ===== TEST BUILD DOCS =====
test_docs_build: # "pages" is a job specifically for GitLab pages [1]
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]
deploy
script: # use sphinx to build docs
- pixi run -e default "cd docs; make html"
tags: # only runners with this tag can do the job [3]
- linux
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- when: never
# ===== BUILD DOCS AND PUSH TO PUBLIC WEBSITE =====
pages: # "pages" is a job specifically for GitLab pages [1]
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]
deploy
script: # use sphinx to build docs, move to public page
- pixi run -e default "cd docs; make html"
- mv docs/build/html public/
artifacts: # required for GitLab pages [1]
paths:
- public
only:
- master
- /^test_doc.*/
tags: # only runners with this tag can do the job [3]
- linux