Advertisement
konstest

Untitled

May 29th, 2025
512
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.35 KB | None | 0 0
  1. .no-web-no-mr: &no-web-no-mr
  2.   if: '$CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "merge_request_event"'
  3.   when: never
  4.  
  5. .no-mr: &no-mr
  6.   if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  7.   when: never
  8.  
  9. workflow:
  10.  # convert master branch name to base saltenv
  11.   rules:
  12.     - if: $CI_COMMIT_BRANCH == "master"
  13.       variables:
  14.         SALTENV: saltenv=base pillarenv=base
  15.     - variables:
  16.         SALTENV: saltenv="$CI_COMMIT_BRANCH" pillarenv="$CI_COMMIT_BRANCH"
  17.     - <<: *no-mr
  18.  
  19. .manual-without-duplicate-pipelines:
  20.   rules:
  21.     - <<: *no-mr
  22.     - when: manual
  23.       # let the jobs be skipped, since rules force allow_failure to be false
  24.       # https://docs.gitlab.com/13.12/ee/ci/yaml/index.html#allow_failure
  25.       allow_failure: true
  26.  
  27. .salt-master:
  28.   image: docker:latest
  29.   extends:
  30.    - .manual-without-duplicate-pipelines
  31.   tags:
  32.    - devops-ci-master.build.company.ru
  33.   #  before_script:
  34.   #    - sleep 10; echo "Timer for salt-master gitfs git pull scheduler"
  35.   variables:
  36.     MASTER: docker exec -i devops-ci-master
  37.   dependencies: []
  38.  
  39. #
  40. # Autosyncing pillars & salt modules to ALL servers
  41. saltutil.sync_all to ALL servers:
  42.   stage: salt-master-last-stage
  43.   rules:
  44.     - <<: *no-web-no-mr
  45.     - if: '$CI_COMMIT_REF_NAME == "master" && $CI_PIPELINE_SOURCE != "trigger"'
  46.       changes:
  47.        - pillar/**/*
  48.         - salt/_*/*
  49.       when: on_success
  50.       allow_failure: true
  51.   extends:
  52.    - .salt-master
  53.   script:
  54.    - $MASTER salt -C "*" saltutil.sync_all || true
  55.  
  56. branch $COMMAND on $TARGET:
  57.   stage: salt-master
  58.   extends:
  59.    - .salt-master
  60.   script:
  61.    - $MASTER salt -C "$TARGET" saltutil.refresh_grains || true
  62.     - $MASTER salt -C "$TARGET" saltutil.refresh_pillar || true
  63.     - echo salt -C "$TARGET" $COMMAND $SALTENV
  64.     - $MASTER salt -C "$TARGET" $COMMAND $SALTENV
  65.  
  66. branch async $COMMAND on $TARGET:
  67.   stage: salt-master
  68.   extends:
  69.    - .salt-master
  70.   script:
  71.    - echo salt -C "$TARGET" $COMMAND $SALTENV
  72.     - jid=$($MASTER salt -C "$TARGET" $COMMAND $SALTENV --async | cut -d' ' -f6)
  73.     - while [ "$($MASTER salt-run jobs.active | grep $jid)" != '' ]; do echo waiting executing $jid command':' salt -C "$TARGET" $COMMAND $SALTENV; done;
  74.     - $MASTER salt-run jobs.lookup_jid jid=$jid missing=False returned=True
  75.     - $MASTER salt-run jobs.lookup_jid jid=$jid missing=True returned=False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement