kind: pipeline
type: kubernetes
name: 'Packer Build'

volumes:
- name: output
  claim:
    name: flexvolsmb-drone-output
- name: workspace
  claim:
    name: flexvolsmb-drone-workspace

steps:
- name: Windows Server 2019
  image: bv11-cr01.bessems.eu/library/packer-extended
  commands:
  - sed -i -e "s/<<img-productkey>>/$${PRODUCTKEY}/" packer/preseed/Server2019/Autounattend.xml
  - |
    sed -i -e "s/<<img-password>>/$${WINRM_PASSWORD}/g" \
      packer/preseed/Server2019/Autounattend.xml \
      packer/preseed/Server2019/Sysprep_Unattend.xml
  - |
    packer validate \
      -var-file=packer/variables.vsphere.json \
      -var vm_name=$DRONE_BUILD_NUMBER-${DRONE_COMMIT_SHA:0:10} \
      -var vm_guestos=server2019 \
      -var repo_username=$${REPO_USERNAME} \
      -var repo_password=$${REPO_PASSWORD} \
      -var vsphere_password=$${VSPHERE_PASSWORD} \
      -var winrm_password=$${WINRM_PASSWORD} \
      packer/windowsserver2019.json
  - |
    packer build \
      -on-error=cleanup -timestamp-ui \
      -var-file=packer/variables.vsphere.json \
      -var vm_name=$DRONE_BUILD_NUMBER-${DRONE_COMMIT_SHA:0:10} \
      -var vm_guestos=server2019 \
      -var repo_username=$${REPO_USERNAME} \
      -var repo_password=$${REPO_PASSWORD} \
      -var vsphere_password=$${VSPHERE_PASSWORD} \
      -var winrm_password=$${WINRM_PASSWORD} \
      packer/windowsserver2019.json
  environment:
    VSPHERE_PASSWORD:
      from_secret: vsphere_password
    WINRM_PASSWORD:
      from_secret: winrm_password
    REPO_USERNAME:
      from_secret: repo_username
    REPO_PASSWORD:
      from_secret: repo_password
    PRODUCTKEY:
      from_secret: prodkey_server2019
    # PACKER_LOG: 1
  volumes:
  - name: output
    path: /output
  - name: workspace
    path: /drone/src
- name: Trigger downstream builds  
  image: plugins/downstream
  settings:
    server: https://ci.spamasaurus.com
    token:
      from_secret: drone_token    
    fork: true
    repositories:
      - djpbessems/Packer.Images@ADCS
      - djpbessems/Packer.Images@ADDS
