mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
93c05074ee
* win_chocolatey: refactor module to fix bugs and add new features * Fix some typos and only emit install warning not in check mode * Fixes when testing out installing chocolatey from a server * Added changelog fragment
105 lines
3.7 KiB
YAML
105 lines
3.7 KiB
YAML
---
|
|
- name: ensure test package is uninstalled
|
|
win_chocolatey:
|
|
name: '{{ test_choco_packages }}'
|
|
state: absent
|
|
|
|
- name: ensure testing dir is cleaned
|
|
win_file:
|
|
path: '{{ test_choco_path }}'
|
|
state: '{{ item }}'
|
|
with_items:
|
|
- absent
|
|
- directory
|
|
|
|
- name: copy template package files
|
|
win_copy:
|
|
src: files/
|
|
dest: '{{ test_choco_path }}'
|
|
|
|
# run the setup in 1 shell script to save on test time
|
|
- name: set up packages
|
|
win_shell: |
|
|
$ErrorActionPreference = "Stop"
|
|
$root_path = '{{ test_choco_path }}'
|
|
$packages_path = '{{ test_choco_source }}'
|
|
$packages_path_override = '{{ test_choco_source2 }}'
|
|
$packages = @(
|
|
@{ name = "ansible"; version = "0.0.1"; override = $false },
|
|
@{ name = "ansible"; version = "0.1.0"; override = $false },
|
|
@{ name = "ansible"; version = "0.1.0"; override = $true },
|
|
@{ name = "ansible-test"; version = "1.0.0"; override = $false },
|
|
@{ name = "ansible-test"; version = "1.0.1-beta1"; override = $false }
|
|
)
|
|
$nuspec_src = "$root_path\package.nuspec"
|
|
$install_src = "$root_path\tools\chocolateyinstall.ps1"
|
|
$uninstall_src = "$root_path\tools\chocolateyUninstall.ps1"
|
|
|
|
New-Item -Path $packages_path -ItemType Directory > $null
|
|
New-Item -Path $packages_path_override -ItemType Directory > $null
|
|
|
|
foreach ($package in $packages) {
|
|
$package_dir = "$root_path\$($package.name)-$($package.version)"
|
|
New-Item -Path $package_dir -ItemType Directory > $null
|
|
New-Item -Path "$package_dir\tools" -ItemType Directory > $null
|
|
|
|
if ($package.override) {
|
|
$out_path = $packages_path_override
|
|
$source_value = "override"
|
|
} else {
|
|
$out_path = $packages_path
|
|
$source_value = "normal"
|
|
}
|
|
|
|
$nuspec_text = ([System.IO.File]::ReadAllLines($nuspec_src) -join "`r`n")
|
|
$nuspec_text = $nuspec_text.Replace('--- NAME ---', $package.name).Replace('--- VERSION ---', $package.version)
|
|
|
|
$install_text = ([System.IO.File]::ReadAllLines($install_src) -join "`r`n")
|
|
$install_text = $install_text.Replace('--- PATH ---', $root_path).Replace('--- SOURCE ---', $source_value)
|
|
|
|
$uninstall_text = ([System.IO.File]::ReadAllLines($uninstall_src) -join "`r`n")
|
|
$uninstall_text = $uninstall_text.Replace('--- PATH ---', $root_path)
|
|
|
|
$utf8 = New-Object -TypeName System.Text.UTF8Encoding -ArgumentList $false
|
|
$utf8_bom = New-Object -TypeName System.Text.UTF8Encoding -ArgumentList $true
|
|
[System.IO.File]::WriteAllText("$package_dir\$($package.name).nuspec", $nuspec_text, $utf8)
|
|
[System.IO.File]::WriteAllText("$package_dir\tools\chocolateyinstall.ps1", $install_text, $utf8_bom)
|
|
[System.IO.File]::WriteAllText("$package_dir\tools\chocolateyUninstall.ps1", $uninstall_text, $utf8_bom)
|
|
|
|
&choco.exe pack --out $out_path --no-progress --limit-output "$package_dir\$($package.name).nuspec"
|
|
Remove-Item -Path $package_dir -Force -Recurse > $null
|
|
}
|
|
Remove-Item -Path "$root_path\tools" -Force -Recurse > $null
|
|
Remove-Item -Path $nuspec_src > $null
|
|
|
|
- name: set up Chocolatey sources
|
|
win_chocolatey_source:
|
|
name: '{{ item.name }}'
|
|
priority: '{{ item.priority }}'
|
|
source: '{{ item.src }}'
|
|
state: present
|
|
with_items:
|
|
- name: ansible-test
|
|
priority: 1
|
|
src: '{{ test_choco_source }}'
|
|
- name: ansible-test-override
|
|
priority: 2
|
|
src: '{{ test_choco_source2 }}'
|
|
|
|
- block:
|
|
- name: run tests
|
|
include_tasks: tests.yml
|
|
|
|
always:
|
|
- name: remove test sources
|
|
win_chocolatey_source:
|
|
name: '{{ item }}'
|
|
state: absent
|
|
with_items:
|
|
- ansible-test
|
|
- ansible-test-override
|
|
|
|
- name: remove testing dir
|
|
win_file:
|
|
path: '{{ test_choco_path }}'
|
|
state: absent
|