|
|
|
# Sets up 2 local repos that contains mock packages for testing.
|
|
|
|
#
|
|
|
|
# PSRepo 1 contains
|
|
|
|
# ansible-test1 - 1.0.0
|
|
|
|
# ansible-test1 - 1.0.5
|
|
|
|
# ansible-test1 - 1.1.0
|
|
|
|
# ansible-test2 - 1.0.0
|
|
|
|
# ansible-test2 - 1.0.1 (Not signed for skip_publisher tests)
|
|
|
|
# ansible-test2 - 1.1.0-beta1
|
|
|
|
# ansible-clobber - 0.1.0
|
|
|
|
#
|
|
|
|
# PSRepo 2 contains
|
|
|
|
# ansible-test2 - 1.0.0
|
|
|
|
#
|
|
|
|
# These modules will have the following cmdlets
|
|
|
|
# ansible-test1
|
|
|
|
# Get-AnsibleTest1
|
|
|
|
#
|
|
|
|
# ansible-test2
|
|
|
|
# Get-AnsibleTest2
|
|
|
|
#
|
|
|
|
# ansible-clobber
|
|
|
|
# Enable-PSTrace (clobbers the Enable-PSTrace cmdlet)
|
|
|
|
#
|
|
|
|
# All cmdlets return
|
|
|
|
# [PSCustomObject]@{
|
|
|
|
# Name = "the name of the module"
|
|
|
|
# Version = "the version of the module"
|
|
|
|
# Repo = "the repo where the module was sourced from"
|
|
|
|
# }
|
|
|
|
---
|
|
|
|
- name: create test repo folders
|
|
|
|
win_file:
|
|
|
|
path: '{{ remote_tmp_dir }}\{{ item }}'
|
|
|
|
state: directory
|
|
|
|
loop:
|
|
|
|
- PSRepo 1
|
|
|
|
- PSRepo 2
|
|
|
|
|
|
|
|
- name: register test repos
|
|
|
|
win_psrepository:
|
|
|
|
name: '{{ item.name }}'
|
|
|
|
source: '{{ remote_tmp_dir }}\{{ item.name }}'
|
|
|
|
installation_policy: '{{ item.policy }}'
|
|
|
|
notify: remove registered repos
|
|
|
|
loop:
|
|
|
|
- name: PSRepo 1
|
|
|
|
policy: trusted
|
|
|
|
- name: PSRepo 2
|
|
|
|
policy: untrusted
|
|
|
|
|
|
|
|
- name: remove PSGallery repository
|
|
|
|
win_psrepository:
|
|
|
|
name: PSGallery
|
|
|
|
state: absent
|
|
|
|
notify: re-add PSGallery repository
|
|
|
|
|
|
|
|
- name: create custom openssl conf
|
|
|
|
copy:
|
|
|
|
src: openssl.conf
|
|
|
|
dest: '{{ output_dir }}/openssl.conf'
|
|
|
|
delegate_to: localhost
|
|
|
|
|
|
|
|
- name: get absolute path of output_dir for script
|
|
|
|
shell: echo {{ output_dir }}
|
|
|
|
delegate_to: localhost
|
|
|
|
register: output_dir_abs
|
|
|
|
|
|
|
|
- name: create certificates for code signing
|
|
|
|
script: setup_certs.sh
|
|
|
|
args:
|
|
|
|
chdir: '{{ output_dir_abs.stdout }}'
|
|
|
|
delegate_to: localhost
|
|
|
|
|
|
|
|
- name: copy the CA and sign certificates
|
|
|
|
win_copy:
|
|
|
|
src: '{{ output_dir }}/{{ item }}'
|
|
|
|
dest: '{{ remote_tmp_dir }}\'
|
|
|
|
loop:
|
|
|
|
- ca.pem
|
|
|
|
- sign.pem
|
|
|
|
- sign.pfx
|
|
|
|
|
|
|
|
- name: import the CA key to the trusted root store
|
|
|
|
win_certificate_store:
|
|
|
|
path: '{{ remote_tmp_dir }}\ca.pem'
|
|
|
|
state: present
|
|
|
|
store_location: LocalMachine
|
|
|
|
store_name: Root
|
|
|
|
register: ca_cert_import
|
|
|
|
notify: remove CA cert from trusted root store
|
|
|
|
|
|
|
|
- name: import the sign key to the trusted publisher store
|
|
|
|
win_certificate_store:
|
|
|
|
path: '{{ remote_tmp_dir }}\sign.pem'
|
|
|
|
state: present
|
|
|
|
store_location: LocalMachine
|
|
|
|
store_name: TrustedPublisher
|
|
|
|
register: sign_cert_import
|
|
|
|
notify: remove signing key from trusted publisher store
|
|
|
|
|
|
|
|
- name: copy across module template files
|
|
|
|
win_copy:
|
|
|
|
src: module/
|
|
|
|
dest: '{{ remote_tmp_dir }}'
|
|
|
|
|
|
|
|
# Used in the script below to create the .nupkg for each test module
|
|
|
|
- name: download NuGet binary for module publishing
|
|
|
|
win_get_url:
|
|
|
|
url: https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/win_psmodule/nuget.exe
|
|
|
|
dest: '{{ remote_tmp_dir }}'
|
|
|
|
|
|
|
|
- name: create test PowerShell modules
|
|
|
|
script: setup_modules.ps1 "{{ remote_tmp_dir }}"
|
|
|
|
notify: remove test packages
|