diff --git a/.github/workflows/ci-windows-build-msi.yml b/.github/workflows/ci-windows-build-msi.yml index 8876c2535b3..c6f25ff3e85 100644 --- a/.github/workflows/ci-windows-build-msi.yml +++ b/.github/workflows/ci-windows-build-msi.yml @@ -9,14 +9,14 @@ on: - master - releases/** paths: - - windows/installer/*.wxs + - build/windows/installer/*.wxs - .github/workflows/ci-windows-build-msi.yml pull_request: branches: - master - releases/** paths: - - windows/installer/*.wxs + - build/windows/installer/*.wxs - .github/workflows/ci-windows-build-msi.yml jobs: diff --git a/Makefile b/Makefile index 3547082fb2a..dd0f0332597 100644 --- a/Makefile +++ b/Makefile @@ -426,11 +426,11 @@ release: check_release build package ## Build a release tarball .PHONY: windows_installer windows_installer: build ## Windows - build the installer - @.\make_installer.ps1 -version $(BUILD_VERSION) + @.\build\windows\make_installer.ps1 -version $(BUILD_VERSION) .PHONY: chocolatey chocolatey: windows_installer ## Windows - build the chocolatey package - @.\make_chocolatey.ps1 -version $(BUILD_VERSION) + @.\build\windows\make_chocolatey.ps1 -version $(BUILD_VERSION) # Include test/bats.mk only if it exists # to allow building without a test/ directory diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4d41f6c38ee..c1da5df45bd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -114,11 +114,11 @@ stages: --azure-key-vault-url "$(KeyVaultUrl)" displayName: "Sign crowdsec binaries" - pwsh: | - .\make_installer.ps1 -version '$(BuildVersion)' + .\build\windows\make_installer.ps1 -version '$(BuildVersion)' displayName: "Build Crowdsec MSI" name: BuildMSI - pwsh: | - .\make_chocolatey.ps1 -version '$(BuildVersion)' + .\build\windows\make_chocolatey.ps1 -version '$(BuildVersion)' displayName: "Build Chocolatey nupkg" - pwsh: | sign code azure-key-vault ` diff --git a/windows/Chocolatey/crowdsec/ReadMe.md b/build/windows/Chocolatey/crowdsec/ReadMe.md similarity index 100% rename from windows/Chocolatey/crowdsec/ReadMe.md rename to build/windows/Chocolatey/crowdsec/ReadMe.md diff --git a/windows/Chocolatey/crowdsec/crowdsec.nuspec b/build/windows/Chocolatey/crowdsec/crowdsec.nuspec similarity index 100% rename from windows/Chocolatey/crowdsec/crowdsec.nuspec rename to build/windows/Chocolatey/crowdsec/crowdsec.nuspec diff --git a/windows/Chocolatey/crowdsec/tools/LICENSE.txt b/build/windows/Chocolatey/crowdsec/tools/LICENSE.txt similarity index 100% rename from windows/Chocolatey/crowdsec/tools/LICENSE.txt rename to build/windows/Chocolatey/crowdsec/tools/LICENSE.txt diff --git a/windows/Chocolatey/crowdsec/tools/VERIFICATION.txt b/build/windows/Chocolatey/crowdsec/tools/VERIFICATION.txt similarity index 100% rename from windows/Chocolatey/crowdsec/tools/VERIFICATION.txt rename to build/windows/Chocolatey/crowdsec/tools/VERIFICATION.txt diff --git a/windows/Chocolatey/crowdsec/tools/chocolateybeforemodify.ps1 b/build/windows/Chocolatey/crowdsec/tools/chocolateybeforemodify.ps1 similarity index 100% rename from windows/Chocolatey/crowdsec/tools/chocolateybeforemodify.ps1 rename to build/windows/Chocolatey/crowdsec/tools/chocolateybeforemodify.ps1 diff --git a/windows/Chocolatey/crowdsec/tools/chocolateyinstall.ps1 b/build/windows/Chocolatey/crowdsec/tools/chocolateyinstall.ps1 similarity index 100% rename from windows/Chocolatey/crowdsec/tools/chocolateyinstall.ps1 rename to build/windows/Chocolatey/crowdsec/tools/chocolateyinstall.ps1 diff --git a/windows/Chocolatey/crowdsec/tools/chocolateyuninstall.ps1 b/build/windows/Chocolatey/crowdsec/tools/chocolateyuninstall.ps1 similarity index 100% rename from windows/Chocolatey/crowdsec/tools/chocolateyuninstall.ps1 rename to build/windows/Chocolatey/crowdsec/tools/chocolateyuninstall.ps1 diff --git a/windows/README.md b/build/windows/README.md similarity index 83% rename from windows/README.md rename to build/windows/README.md index 57ce70d2c92..239d3fa55b0 100644 --- a/windows/README.md +++ b/build/windows/README.md @@ -6,7 +6,7 @@ Now, run PowerShell as Administrator, go in the crowdsec repository (if you already cloned it) and run: ```powershell -PS C:\Users\johndoe\src\crowdsec> powershell .\windows\install_dev_windows.ps1 +PS C:\Users\johndoe\src\crowdsec> powershell .\build\windows\install_dev_windows.ps1 [...] ``` @@ -18,7 +18,7 @@ Now you should have the right dependencies (go, gcc, git). You can verify with to also build the choco or MSI packages, you need more dependencies: ```powershell -PS C:\Users\johndoe\src\crowdsec> powershell .\windows\install_installer_windows.ps1 +PS C:\Users\johndoe\src\crowdsec> powershell .\build\windows\install_installer_windows.ps1 [...] ``` @@ -28,7 +28,7 @@ You can now use * `make test` to run unit tests. Some tests requiring localstack are disabled. Functional tests are also only available on unix systems. * `make windows_installer` to build a `crowdsec_x.y.z.msi` installer -* `make chocolatey` to build a package under `.\windows\Chocolatey\crowdsec\crowdsec_x.y.z.nupkg` which you can test using `choco install ` +* `make chocolatey` to build a package under `.\build\windows\Chocolatey\crowdsec\crowdsec_x.y.z.nupkg` which you can test using `choco install ` After installing CrowdSec, the binaries are in `C:\Program Files\CrowdSec\`: diff --git a/windows/install_dev_windows.ps1 b/build/windows/install_dev_windows.ps1 similarity index 93% rename from windows/install_dev_windows.ps1 rename to build/windows/install_dev_windows.ps1 index 325d8b10657..cd846d05dae 100644 --- a/windows/install_dev_windows.ps1 +++ b/build/windows/install_dev_windows.ps1 @@ -1,6 +1,6 @@ #install choco Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) -choco install -y golang +choco install -y golang choco install -y git choco install -y mingw refreshenv diff --git a/windows/install_installer_windows.ps1 b/build/windows/install_installer_windows.ps1 similarity index 100% rename from windows/install_installer_windows.ps1 rename to build/windows/install_installer_windows.ps1 diff --git a/windows/installer/WixUI_HK.wxs b/build/windows/installer/WixUI_HK.wxs similarity index 90% rename from windows/installer/WixUI_HK.wxs rename to build/windows/installer/WixUI_HK.wxs index 9133b495ddd..32840886a2f 100644 --- a/windows/installer/WixUI_HK.wxs +++ b/build/windows/installer/WixUI_HK.wxs @@ -48,9 +48,9 @@ - - - + + + diff --git a/windows/installer/crowdsec_icon.ico b/build/windows/installer/crowdsec_icon.ico similarity index 100% rename from windows/installer/crowdsec_icon.ico rename to build/windows/installer/crowdsec_icon.ico diff --git a/windows/installer/crowdsec_msi_top_banner.bmp b/build/windows/installer/crowdsec_msi_top_banner.bmp similarity index 100% rename from windows/installer/crowdsec_msi_top_banner.bmp rename to build/windows/installer/crowdsec_msi_top_banner.bmp diff --git a/windows/installer/installer_dialog.bmp b/build/windows/installer/installer_dialog.bmp similarity index 100% rename from windows/installer/installer_dialog.bmp rename to build/windows/installer/installer_dialog.bmp diff --git a/windows/installer/product.wxs b/build/windows/installer/product.wxs similarity index 100% rename from windows/installer/product.wxs rename to build/windows/installer/product.wxs diff --git a/make_chocolatey.ps1 b/build/windows/make_chocolatey.ps1 similarity index 62% rename from make_chocolatey.ps1 rename to build/windows/make_chocolatey.ps1 index cceed28402f..629884a5d93 100644 --- a/make_chocolatey.ps1 +++ b/build/windows/make_chocolatey.ps1 @@ -7,14 +7,14 @@ if ($version.StartsWith("v")) } #Pre-releases will be like 1.4.0-rc1, remove everything after the dash as it does not conform to the MSI versioning scheme -if ($version.Contains("-")) +if ($version.Contains("-")) { $version = $version.Substring(0, $version.IndexOf("-")) } -Set-Location .\windows\Chocolatey\crowdsec -Copy-Item ..\..\..\crowdsec_$version.msi tools\crowdsec.msi +Set-Location .\build\windows\Chocolatey\crowdsec +Copy-Item ..\..\..\..\crowdsec_$version.msi tools\crowdsec.msi choco pack --version $version -Copy-Item crowdsec.$version.nupkg ..\..\..\ \ No newline at end of file +Copy-Item crowdsec.$version.nupkg ..\..\..\..\ diff --git a/make_installer.ps1 b/build/windows/make_installer.ps1 similarity index 83% rename from make_installer.ps1 rename to build/windows/make_installer.ps1 index c927452ff72..6513d2c6d37 100644 --- a/make_installer.ps1 +++ b/build/windows/make_installer.ps1 @@ -8,7 +8,7 @@ if ($version.StartsWith("v")) } #Pre-releases will be like 1.4.0-rc1, remove everything after the dash as it does not conform to the MSI versioning scheme -if ($version.Contains("-")) +if ($version.Contains("-")) { $version = $version.Substring(0, $version.IndexOf("-")) } @@ -16,5 +16,5 @@ if ($version.Contains("-")) Remove-Item -Force -Recurse -Path .\msi -ErrorAction SilentlyContinue #we only harvest the patterns dir, as we want to handle differently some yaml files in the config directory, and I really don't want to write xlst filters to exclude the files :( heat.exe dir config\patterns -nologo -cg CrowdsecPatterns -dr PatternsDir -g1 -ag -sf -srd -scom -sreg -out "msi\fragment.wxs" -candle.exe -arch x64 -dSourceDir=config\patterns -dVersion="$version" -out msi\ msi\fragment.wxs windows\installer\WixUI_HK.wxs windows\installer\product.wxs -light.exe -b .\config\patterns -ext WixUIExtension -ext WixUtilExtension -sacl -spdb -out crowdsec_$version.msi msi\fragment.wixobj msi\WixUI_HK.wixobj msi\product.wixobj \ No newline at end of file +candle.exe -arch x64 -dSourceDir=config\patterns -dVersion="$version" -out msi\ msi\fragment.wxs build\windows\installer\WixUI_HK.wxs build\windows\installer\product.wxs +light.exe -b .\config\patterns -ext WixUIExtension -ext WixUtilExtension -sacl -spdb -out crowdsec_$version.msi msi\fragment.wixobj msi\WixUI_HK.wixobj msi\product.wixobj