Fix MSI release (#572)
* Reapply "Add Windows MSI to the release (#560)" (#570)
This reverts commit b8551a7bdb.
* Fix MSI release: add wixl tool to GH runner
This commit is contained in:
parent
bf4bd1b9f3
commit
414594f174
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
GOARCH: arm
|
||||
- GOOS: windows
|
||||
GOARCH: s390x
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
@ -45,6 +45,12 @@ jobs:
|
|||
with:
|
||||
platforms: arm64,ppc64le,linux/arm/v7,s390x
|
||||
|
||||
- name: Setup wixl # Required to build MSI packages for Windows
|
||||
if: ${{ matrix.GOOS }} == 'windows' && (${{ matrix.GOARCH }} == '386' || ${{ matrix.GOARCH }} == 'amd64')
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y wixl
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
GOARCH: arm
|
||||
- GOOS: windows
|
||||
GOARCH: s390x
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
|
@ -54,6 +54,12 @@ jobs:
|
|||
go-version: '1.22'
|
||||
check-latest: true
|
||||
|
||||
- name: Setup wixl # Required to build MSI packages for Windows
|
||||
if: ${{ matrix.GOOS }} == 'windows' && (${{ matrix.GOARCH }} == '386' || ${{ matrix.GOARCH }} == 'amd64')
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y wixl
|
||||
|
||||
- name: Generate distribution sources
|
||||
run: make generate-sources
|
||||
|
||||
|
|
@ -95,7 +101,7 @@ jobs:
|
|||
|
||||
release:
|
||||
name: ${{ inputs.distribution }} Release
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
needs: prepare
|
||||
|
||||
permissions:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ on:
|
|||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@ This repository contains a set of resources that ultimately results in OpenTelem
|
|||
|
||||
### Distribution directory
|
||||
|
||||
Each distribution has its own directory at the root of this repository, such as `opentelemetry-collector`. Within each one of those, you'll find at least two files:
|
||||
Each distribution has its own directory under the [`distributions`](./distributions/) folder, such as [`otelcol`](./distributions/otelcol/).
|
||||
Within each one of those, you'll find at least two files:
|
||||
|
||||
- `Dockerfile`, determining how to build the container image for this distribution
|
||||
- `manifest.yaml`, which is used with [ocb](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder) to generate the sources for the distribution.
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ import (
|
|||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/goreleaser/goreleaser/pkg/config"
|
||||
"github.com/goreleaser/nfpm/v2/files"
|
||||
"github.com/goreleaser/goreleaser-pro/pkg/config"
|
||||
)
|
||||
|
||||
const ArmArch = "arm"
|
||||
|
|
@ -45,6 +44,7 @@ func Generate(dist string) config.Project {
|
|||
Env: []string{"COSIGN_YES=true"},
|
||||
Builds: Builds(dist),
|
||||
Archives: Archives(dist),
|
||||
MSI: WinPackages(dist),
|
||||
NFPMs: Packages(dist),
|
||||
Dockers: DockerImages(dist),
|
||||
DockerManifests: DockerManifests(dist),
|
||||
|
|
@ -102,6 +102,26 @@ func Archive(dist string) config.Archive {
|
|||
}
|
||||
}
|
||||
|
||||
func WinPackages(dist string) []config.MSI {
|
||||
return []config.MSI{
|
||||
WinPackage(dist),
|
||||
}
|
||||
}
|
||||
|
||||
// Package configures goreleaser to build a Windows MSI package.
|
||||
// https://goreleaser.com/customization/msi/
|
||||
func WinPackage(dist string) config.MSI {
|
||||
return config.MSI{
|
||||
ID: dist,
|
||||
Name: fmt.Sprintf("%s_{{ .Version }}_{{ .Os }}_{{ .MsiArch }}", dist),
|
||||
WXS: "windows-installer.wxs",
|
||||
Files: []string{
|
||||
"config.yaml",
|
||||
"opentelemetry.ico",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func Packages(dist string) (r []config.NFPM) {
|
||||
return []config.NFPM{
|
||||
Package(dist),
|
||||
|
|
@ -127,7 +147,7 @@ func Package(dist string) config.NFPM {
|
|||
PostInstall: "postinstall.sh",
|
||||
PreRemove: "preremove.sh",
|
||||
},
|
||||
Contents: files.Contents{
|
||||
Contents: config.NFPMContents{
|
||||
{
|
||||
Source: fmt.Sprintf("%s.service", dist),
|
||||
Destination: path.Join("/lib", "systemd", "system", fmt.Sprintf("%s.service", dist)),
|
||||
|
|
|
|||
|
|
@ -3,6 +3,13 @@ partial:
|
|||
project_name: opentelemetry-collector-releases
|
||||
env:
|
||||
- COSIGN_YES=true
|
||||
msi:
|
||||
- id: otelcol-contrib
|
||||
name: otelcol-contrib_{{ .Version }}_{{ .Os }}_{{ .MsiArch }}
|
||||
wxs: windows-installer.wxs
|
||||
extra_files:
|
||||
- config.yaml
|
||||
- opentelemetry.ico
|
||||
builds:
|
||||
- id: otelcol-contrib
|
||||
goos:
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 269 KiB |
|
|
@ -0,0 +1,88 @@
|
|||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product
|
||||
Name="OpenTelemetry Collector ({{ .Version }}) - {{ .Binary }} distribution"
|
||||
Id="B250A214-D463-4E9B-8902-1DE5C19EA951"
|
||||
UpgradeCode="B7C263DD-95A5-436A-A025-DCA5200C2BE3"
|
||||
Version="{{ .Version }}"
|
||||
Manufacturer="OpenTelemetry"
|
||||
Language="1033">
|
||||
|
||||
<Package
|
||||
InstallerVersion="200"
|
||||
Compressed="yes"
|
||||
Comments="Windows Installer Package"
|
||||
InstallScope="perMachine"/>
|
||||
<Media Id="1" Cabinet="product.cab" EmbedCab="yes"/>
|
||||
<Icon Id="ProductIcon" SourceFile="opentelemetry.ico"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="ProductIcon"/>
|
||||
<Property Id="ARPHELPLINK" Value="https://opentelemetry.io/"/>
|
||||
<Property Id="ARPURLINFOABOUT" Value="https://opentelemetry.io/"/>
|
||||
<Property Id="ARPNOREPAIR" Value="1"/>
|
||||
<Property Id="ARPNOMODIFY" Value="1"/>
|
||||
|
||||
<MajorUpgrade
|
||||
DowngradeErrorMessage="A later version of OpenTelemetry Collector already installed. Setup will now exit."/>
|
||||
|
||||
<Feature Id="Feature" Level="1">
|
||||
<ComponentRef Id="ApplicationComponent"/>
|
||||
</Feature>
|
||||
|
||||
<Property Id="COLLECTOR_SVC_ARGS"/>
|
||||
<CustomAction
|
||||
Id="SetCollectorSvcArgs"
|
||||
Property="COLLECTOR_SVC_ARGS"
|
||||
Value="--config "[INSTALLDIR]config.yaml""/>
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="SetCollectorSvcArgs" Before="InstallFiles">NOT COLLECTOR_SVC_ARGS</Custom>
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
<Directory Id="INSTALLDIR" Name="OpenTelemetry Collector">
|
||||
<Component Id="ApplicationComponent" Guid="1207C3C4-1830-4DC8-8A7B-2BD7DBE45BC3">
|
||||
<!-- Files to include -->
|
||||
<File
|
||||
Id="{{ .Binary }}.exe"
|
||||
Name="{{ .Binary }}.exe"
|
||||
Source="{{ .Binary }}.exe"
|
||||
KeyPath="yes"/>
|
||||
<File
|
||||
Id="config.yaml"
|
||||
Name="config.yaml"
|
||||
Source="config.yaml"/>
|
||||
|
||||
<ServiceInstall
|
||||
Id="Sevice"
|
||||
Name="{{ .Binary }}"
|
||||
DisplayName="OpenTelemetry Collector"
|
||||
Description="Collects, processes, and exports telemetry from various configurable sources."
|
||||
Type="ownProcess"
|
||||
Vital="yes"
|
||||
Start="auto"
|
||||
Account="LocalSystem"
|
||||
ErrorControl="normal"
|
||||
Arguments="[COLLECTOR_SVC_ARGS]"
|
||||
Interactive="no"/>
|
||||
<ServiceControl
|
||||
Id="StartStopRemoveService"
|
||||
Name="{{ .Binary }}"
|
||||
Start="install"
|
||||
Stop="both"
|
||||
Remove="uninstall"
|
||||
Wait="yes"/>
|
||||
|
||||
<RegistryKey
|
||||
Root="HKLM"
|
||||
Key="SYSTEM\CurrentControlSet\Services\EventLog\Application\{{ .Binary }}">
|
||||
<RegistryValue
|
||||
Type="expandable"
|
||||
Name="EventMessageFile"
|
||||
Value="%SystemRoot%\System32\EventCreate.exe"/>
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Product>
|
||||
</Wix>
|
||||
|
|
@ -3,6 +3,13 @@ partial:
|
|||
project_name: opentelemetry-collector-releases
|
||||
env:
|
||||
- COSIGN_YES=true
|
||||
msi:
|
||||
- id: otelcol
|
||||
name: otelcol_{{ .Version }}_{{ .Os }}_{{ .MsiArch }}
|
||||
wxs: windows-installer.wxs
|
||||
extra_files:
|
||||
- config.yaml
|
||||
- opentelemetry.ico
|
||||
builds:
|
||||
- id: otelcol
|
||||
goos:
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 269 KiB |
|
|
@ -0,0 +1,88 @@
|
|||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product
|
||||
Name="OpenTelemetry Collector ({{ .Version }}) - {{ .Binary }} distribution"
|
||||
Id="B250A214-D463-4E9B-8902-1DE5C19EA951"
|
||||
UpgradeCode="B7C263DD-95A5-436A-A025-DCA5200C2BE3"
|
||||
Version="{{ .Version }}"
|
||||
Manufacturer="OpenTelemetry"
|
||||
Language="1033">
|
||||
|
||||
<Package
|
||||
InstallerVersion="200"
|
||||
Compressed="yes"
|
||||
Comments="Windows Installer Package"
|
||||
InstallScope="perMachine"/>
|
||||
<Media Id="1" Cabinet="product.cab" EmbedCab="yes"/>
|
||||
<Icon Id="ProductIcon" SourceFile="opentelemetry.ico"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="ProductIcon"/>
|
||||
<Property Id="ARPHELPLINK" Value="https://opentelemetry.io/"/>
|
||||
<Property Id="ARPURLINFOABOUT" Value="https://opentelemetry.io/"/>
|
||||
<Property Id="ARPNOREPAIR" Value="1"/>
|
||||
<Property Id="ARPNOMODIFY" Value="1"/>
|
||||
|
||||
<MajorUpgrade
|
||||
DowngradeErrorMessage="A later version of OpenTelemetry Collector already installed. Setup will now exit."/>
|
||||
|
||||
<Feature Id="Feature" Level="1">
|
||||
<ComponentRef Id="ApplicationComponent"/>
|
||||
</Feature>
|
||||
|
||||
<Property Id="COLLECTOR_SVC_ARGS"/>
|
||||
<CustomAction
|
||||
Id="SetCollectorSvcArgs"
|
||||
Property="COLLECTOR_SVC_ARGS"
|
||||
Value="--config "[INSTALLDIR]config.yaml""/>
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="SetCollectorSvcArgs" Before="InstallFiles">NOT COLLECTOR_SVC_ARGS</Custom>
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
<Directory Id="INSTALLDIR" Name="OpenTelemetry Collector">
|
||||
<Component Id="ApplicationComponent" Guid="1207C3C4-1830-4DC8-8A7B-2BD7DBE45BC3">
|
||||
<!-- Files to include -->
|
||||
<File
|
||||
Id="{{ .Binary }}.exe"
|
||||
Name="{{ .Binary }}.exe"
|
||||
Source="{{ .Binary }}.exe"
|
||||
KeyPath="yes"/>
|
||||
<File
|
||||
Id="config.yaml"
|
||||
Name="config.yaml"
|
||||
Source="config.yaml"/>
|
||||
|
||||
<ServiceInstall
|
||||
Id="Sevice"
|
||||
Name="{{ .Binary }}"
|
||||
DisplayName="OpenTelemetry Collector"
|
||||
Description="Collects, processes, and exports telemetry from various configurable sources."
|
||||
Type="ownProcess"
|
||||
Vital="yes"
|
||||
Start="auto"
|
||||
Account="LocalSystem"
|
||||
ErrorControl="normal"
|
||||
Arguments="[COLLECTOR_SVC_ARGS]"
|
||||
Interactive="no"/>
|
||||
<ServiceControl
|
||||
Id="StartStopRemoveService"
|
||||
Name="{{ .Binary }}"
|
||||
Start="install"
|
||||
Stop="both"
|
||||
Remove="uninstall"
|
||||
Wait="yes"/>
|
||||
|
||||
<RegistryKey
|
||||
Root="HKLM"
|
||||
Key="SYSTEM\CurrentControlSet\Services\EventLog\Application\{{ .Binary }}">
|
||||
<RegistryValue
|
||||
Type="expandable"
|
||||
Name="EventMessageFile"
|
||||
Value="%SystemRoot%\System32\EventCreate.exe"/>
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Product>
|
||||
</Wix>
|
||||
2
go.mod
2
go.mod
|
|
@ -5,7 +5,7 @@ go 1.21
|
|||
toolchain go1.21.7
|
||||
|
||||
require (
|
||||
github.com/goreleaser/goreleaser v1.25.1
|
||||
github.com/goreleaser/goreleaser-pro v1.25.1-pro
|
||||
github.com/goreleaser/nfpm/v2 v2.37.1
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
|
|
|||
2
go.sum
2
go.sum
|
|
@ -21,6 +21,8 @@ github.com/goreleaser/fileglob v1.3.0 h1:/X6J7U8lbDpQtBvGcwwPS6OpzkNVlVEsFUVRx9+
|
|||
github.com/goreleaser/fileglob v1.3.0/go.mod h1:Jx6BoXv3mbYkEzwm9THo7xbr5egkAraxkGorbJb4RxU=
|
||||
github.com/goreleaser/goreleaser v1.25.1 h1:a9skjeROotTN5GPPJDHDfhmOK4n13cBgJ34sTdXRDN0=
|
||||
github.com/goreleaser/goreleaser v1.25.1/go.mod h1:nsbhCYp9eImbE2fyd9/3Tgv5hjuGuDIQRoBozEUEYbc=
|
||||
github.com/goreleaser/goreleaser-pro v1.25.1-pro h1:NOoSx96oAK0zNA1+hiL0p6pY1DWL101kwPmpmkiExXk=
|
||||
github.com/goreleaser/goreleaser-pro v1.25.1-pro/go.mod h1:7q9HURJC4ZYBT9VyX3XlqjK0kwe5QbG/VIUAJSP3CKc=
|
||||
github.com/goreleaser/nfpm/v2 v2.37.1 h1:RUmeEt8OlEVeSzKRrO5Vl5qVWCtUwx4j9uivGuRo5fw=
|
||||
github.com/goreleaser/nfpm/v2 v2.37.1/go.mod h1:q8+sZXFqn106/eGw+9V+I8+izFxZ/sJjrhwmEUxXhUg=
|
||||
github.com/invopop/jsonschema v0.12.0 h1:6ovsNSuvn9wEQVOyc72aycBMVQFKz7cPdMJn10CvzRI=
|
||||
|
|
|
|||
Loading…
Reference in New Issue