Kirill Kiselev
Kirill Kiselev

Reputation: 83

Convert Yaml from GitLab to azure devops

I want to convert Yaml pipeline from Gitlab to Azure DevOps. The problem is I did not have experience with GitLab before. This is yaml. Is .package_deploy template for job? And is image it a pool or I need to use for this Docker task? And before_script: means I need to create a task before task with docker?

    variables:
          myVar: "Var"
       
    stages:
      - deploy
    
    .package_deploy:
      image: registry.gitlab.com/docker-images/$myVar:latest
      stage: build
      script:
        - cd src
        - echo "Output file name is set to $OUTPUT_FILE_NAME"
        - echo $OUTPUT_FILE_NAME > version.txt
        - az login --service-principal -u $ARM_CLIENT_ID -p $ARM_CLIENT_SECRET --tenant $ARM_TENANT_ID

    
    dev_package_deploy:
      extends: .package_deploy
      stage: deploy
      before_script:
        - export FOLDER=$FOLDER_DEV
        - timestampSuffix=$(date -u "+%Y%m%dT%H%M%S")
        - export OUTPUT_FILE_NAME=${myVar}-${timestampSuffix}-${CI_COMMIT_REF_SLUG}.tar.gz
      when: manual
    
    demo_package_deploy:
      extends: .package_deploy
      stage: deploy
      before_script:
        - export FOLDER=$FOLDER_DEMO
        - timestampSuffix=$(date -u "+%Y%m%dT%H%M%S")
        - export OUTPUT_FILE_NAME=${myVar}-${timestampSuffix}.tar.gz
      when: manual
      only:
        refs:
          - master

Upvotes: 2

Views: 2908

Answers (1)

sytech
sytech

Reputation: 41051

.package_deploy: is a 'hidden job' that you can use with the extends keyword. Itself, it does not create any job. It's a way to avoid repeating yourself in other job definitions.

before_script really is no different from script except that they're two different keys. The effect is that before_script + script includes all the script steps in the job.

before_script:
 - one
 - two
script:
 - three
 - four

Is the same as:

script:
 - one
 - two
 - three
 - four

image: defines the docker container in which the job runs. In this way, it is very similar to a pool you would define in ADO. But if you want things to run close to thee way it does in GitLab, you probably want to define it as container: in ADO.

Upvotes: 3

Related Questions