Newer
Older

Ernestas Simutis
committed
# [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

Ernestas Simutis
committed
.mr_or_topfarm_group_rules: &mr_or_topfarm_group_rules
rules:
- if: '$CI_PROJECT_NAMESPACE == "TOPFARM" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
when: on_success
- when: never

Ernestas Simutis
committed
# ===== 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]

Ernestas Simutis
committed
- pixi run -e default pycodestyle --ignore=E501,W504 --exclude="*Colonel*" topfarm
tags: # only runners with this tag can do the job [3]
- linux
<<: *mr_or_topfarm_group_rules

Ernestas Simutis
committed
test_topfarm:
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]

Ernestas Simutis
committed
- pixi run pixi run test-all
tags: # only runners with this tag can do the job [3]
- linux
<<: *mr_or_topfarm_group_rules

Ernestas Simutis
committed
# ===== TEST TOPFARM ON WINDOWS =====
test_topfarm_windows: # name the job what we like

Ernestas Simutis
committed
stage: # build, test, deploy defined by default [2]
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'

Ernestas Simutis
committed
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 test-all
tags: # tag for shared runner on windows machine
- ANMH_old
<<: *mr_or_topfarm_group_rules

Ernestas Simutis
committed
# ===== TRIGGER TRIGGERHUB PIPELINE =====
trigger_hub_test:
stage: test
variables:
TRIGGER_BRANCH: $CI_COMMIT_REF_NAME
trigger:
project: TOPFARMPrivate/triggerhub/topfarmtriggers
strategy: depend

Ernestas Simutis
committed
# ===== TEST TOPFARM DEPLOY =====
test_topfarm_deploy:
image: ghcr.io/prefix-dev/pixi:latest
stage: # build, test, deploy defined by default [2]

Ernestas Simutis
committed
script:
- 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
<<: *mr_or_topfarm_group_rules

Ernestas Simutis
committed
pypi_deploy:
image: ghcr.io/prefix-dev/pixi:latest
stage: deploy

Ernestas Simutis
committed
- pixi run -e default hatch build
- pixi run -e default hatch publish -u $TWINE_USERNAME -a $TWINE_PASSWORD
tags:

Ernestas Simutis
committed
only:
- tags

Ernestas Simutis
committed
# ===== 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