# [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: - 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: - 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