# [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 .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 # ===== 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 <<: *mr_or_topfarm_group_rules # ===== TEST TOPFARM ===== test_topfarm: image: ghcr.io/prefix-dev/pixi:latest stage: # build, test, deploy defined by default [2] test script: - pixi run pixi run test-all tags: # only runners with this tag can do the job [3] - linux <<: *mr_or_topfarm_group_rules # ===== TEST TOPFARM ON WINDOWS ===== test_topfarm_windows: # name the job what we like variables: GIT_SUBMODULE_STRATEGY: normal 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 test-all tags: # tag for shared runner on windows machine - ANMH_old <<: *mr_or_topfarm_group_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: - 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 # ===== BUILD WHEELS AND UPLOAD TO PYPI ===== pypi_deploy: image: ghcr.io/prefix-dev/pixi:latest stage: deploy script: - pixi run -e default hatch build - pixi run -e default hatch publish -u $TWINE_USERNAME -a $TWINE_PASSWORD tags: - linux only: - tags # ===== 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