-
Notifications
You must be signed in to change notification settings - Fork 209
test: run linux package tests nightly against latest contrib main #666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
mx-psi
merged 40 commits into
open-telemetry:main
from
dynatrace-oss-contrib:nightly-package-tests
Dec 2, 2024
Merged
Changes from all commits
Commits
Show all changes
40 commits
Select commit
Hold shift + click to select a range
f2944ad
run package tests nightly against latest main
mowies 4fb20f7
try again
mowies f4cc7fd
add mkdir for all distros
mowies 4ba2fa3
start with adding goreleaser generation code
mowies 1795db1
generate rest of goreleaser config
mowies ba8b447
make generate-goreleaser - only reorders things
mowies 111e357
polishing
mowies 3d09e7a
trigger build
mowies b8cefe5
rename files
mowies f9e4654
rename agai
mowies 26e604f
remove push trigger
mowies 38f5c81
rename jobs, use pinned ubuntu version
mowies a79e433
remove curly braces, refactoring
mowies 6f9b5d9
minor polishing and refactoring
mowies b9586c5
remove trigger on PR
mowies 9bcb102
minor refactoring
mowies 5178475
renaming
mowies f779d20
minor refactoring
mowies 9acfee3
revert beauty changes for separate PR
mowies 74152b6
rename input variable and add description
mowies 4510156
rename build step flag
mowies acb1bfd
add conditional
mowies 6f778d1
better conditionals and namin
mowies 8eb8569
fix workflow reference
mowies c9911c7
more naming fixes
mowies 406b028
enable package test workflow again for debugging
mowies 0246a3b
fix more naming
mowies 00277a2
refactoring
mowies 5b0723c
use target template variable
mowies ef87763
add go386 variable to filenames
mowies 1aade2e
fix template variable
mowies 9953e18
add goarm64 variable
mowies 4a47ab8
adapt goreleaser generator
mowies 64968de
line breaks
mowies e4a05a5
prefix nightly steps
mowies 2daf32c
add missing quotes
mowies 645ff96
try to use target template var again
mowies 81e2bb0
try to use target env var more
mowies 25f450f
revert name template field
mowies 1b4f009
remove debug change
mowies File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Package Tests - Contrib | ||
|
||
on: | ||
schedule: | ||
- cron: "0 2 * * *" # every day at 2am UTC | ||
|
||
jobs: | ||
check-goreleaser: | ||
name: Build - Contrib - GoReleaser | ||
uses: ./.github/workflows/base-ci-goreleaser.yaml | ||
with: | ||
distribution: otelcol-contrib | ||
goos: '[ "linux" ]' | ||
goarch: '[ "amd64" ]' | ||
nightly: true | ||
secrets: inherit | ||
|
||
package-tests: | ||
name: Linux Package tests | ||
needs: check-goreleaser | ||
uses: ./.github/workflows/base-package-tests.yaml | ||
with: | ||
distribution: otelcol-contrib | ||
type: '[ "deb", "rpm" ]' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -92,4 +92,4 @@ delete-tags: | |
# Used for debug only | ||
[email protected]:open-telemetry/opentelemetry-collector-releases.git | ||
.PHONY: repeat-tags | ||
repeat-tags: delete-tags push-tags | ||
repeat-tags: delete-tags push-tags |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -42,22 +42,32 @@ const ( | |
var ( | ||
ImagePrefixes = []string{DockerHub, GHCR} | ||
Architectures = []string{"386", "amd64", "arm", "arm64", "ppc64le", "s390x"} | ||
ArmVersions = []string{"7"} | ||
DefaultConfigDists = map[string]bool{CoreDistro: true, ContribDistro: true} | ||
MSIWindowsDists = map[string]bool{CoreDistro: true, ContribDistro: true, OTLPDistro: true} | ||
K8sDockerSkipArchs = map[string]bool{"arm": true, "386": true} | ||
K8sGoos = []string{"linux"} | ||
K8sArchs = []string{"amd64", "arm64", "ppc64le", "s390x"} | ||
) | ||
|
||
func Generate(dist string) config.Project { | ||
func GenerateContribBuildOnly(dist string, buildOrRest bool) config.Project { | ||
return config.Project{ | ||
ProjectName: "opentelemetry-collector-releases", | ||
Builds: Builds(dist, buildOrRest), | ||
Version: 2, | ||
Monorepo: config.Monorepo{ | ||
TagPrefix: "v", | ||
}, | ||
} | ||
} | ||
|
||
func Generate(dist string, buildOrRest bool) config.Project { | ||
return config.Project{ | ||
ProjectName: "opentelemetry-collector-releases", | ||
Checksum: config.Checksum{ | ||
NameTemplate: fmt.Sprintf("{{ .ProjectName }}_%v_checksums.txt", dist), | ||
}, | ||
Env: []string{"COSIGN_YES=true"}, | ||
Builds: Builds(dist), | ||
Builds: Builds(dist, buildOrRest), | ||
Archives: Archives(dist), | ||
MSI: WinPackages(dist), | ||
NFPMs: Packages(dist), | ||
|
@@ -73,37 +83,41 @@ func Generate(dist string) config.Project { | |
} | ||
} | ||
|
||
func Builds(dist string) []config.Build { | ||
func Builds(dist string, buildOrRest bool) []config.Build { | ||
return []config.Build{ | ||
Build(dist), | ||
Build(dist, buildOrRest), | ||
} | ||
} | ||
|
||
// Build configures a goreleaser build. | ||
// https://goreleaser.com/customization/build/ | ||
func Build(dist string) config.Build { | ||
var goos []string | ||
var archs []string | ||
var ignore []config.IgnoredBuild | ||
var armVersions []string | ||
func Build(dist string, buildOrRest bool) config.Build { | ||
goos := []string{"darwin", "linux", "windows"} | ||
archs := Architectures | ||
|
||
if dist == ContribDistro && !buildOrRest { | ||
// only return build config for contrib build file | ||
return config.Build{ | ||
ID: dist, | ||
Builder: "prebuilt", | ||
PreBuilt: config.PreBuiltOptions{ | ||
Path: "artifacts/otelcol-contrib_{{ .Target }}" + | ||
"/otelcol-contrib{{- if eq .Os \"windows\" }}.exe{{ end }}", | ||
}, | ||
Goos: goos, | ||
Goarch: archs, | ||
Goarm: ArmVersions(dist), | ||
Dir: "_build", | ||
Binary: dist, | ||
Ignore: IgnoreBuildCombinations(dist), | ||
} | ||
} | ||
|
||
if dist == K8sDistro { | ||
goos = K8sGoos | ||
archs = K8sArchs | ||
ignore = make([]config.IgnoredBuild, 0) | ||
armVersions = make([]string, 0) | ||
} else { | ||
goos = []string{"darwin", "linux", "windows"} | ||
archs = Architectures | ||
ignore = []config.IgnoredBuild{ | ||
{Goos: "darwin", Goarch: "386"}, | ||
{Goos: "darwin", Goarch: "arm"}, | ||
{Goos: "darwin", Goarch: "s390x"}, | ||
{Goos: "windows", Goarch: "arm"}, | ||
{Goos: "windows", Goarch: "arm64"}, | ||
{Goos: "windows", Goarch: "s390x"}, | ||
} | ||
armVersions = ArmVersions | ||
} | ||
|
||
return config.Build{ | ||
ID: dist, | ||
Dir: "_build", | ||
|
@@ -115,12 +129,33 @@ func Build(dist string) config.Build { | |
}, | ||
Goos: goos, | ||
Goarch: archs, | ||
Goarm: armVersions, | ||
Ignore: ignore, | ||
Goarm: ArmVersions(dist), | ||
Ignore: IgnoreBuildCombinations(dist), | ||
} | ||
} | ||
|
||
func Archives(dist string) (r []config.Archive) { | ||
func IgnoreBuildCombinations(dist string) []config.IgnoredBuild { | ||
if dist == K8sDistro { | ||
return nil | ||
} | ||
mowies marked this conversation as resolved.
Show resolved
Hide resolved
|
||
return []config.IgnoredBuild{ | ||
{Goos: "darwin", Goarch: "386"}, | ||
{Goos: "darwin", Goarch: "arm"}, | ||
{Goos: "darwin", Goarch: "s390x"}, | ||
{Goos: "windows", Goarch: "arm"}, | ||
{Goos: "windows", Goarch: "arm64"}, | ||
{Goos: "windows", Goarch: "s390x"}, | ||
} | ||
} | ||
|
||
func ArmVersions(dist string) []string { | ||
if dist == K8sDistro { | ||
return nil | ||
} | ||
return []string{"7"} | ||
} | ||
|
||
func Archives(dist string) []config.Archive { | ||
return []config.Archive{ | ||
Archive(dist), | ||
} | ||
|
@@ -138,7 +173,7 @@ func Archive(dist string) config.Archive { | |
|
||
func WinPackages(dist string) []config.MSI { | ||
if _, ok := MSIWindowsDists[dist]; !ok { | ||
return []config.MSI{} | ||
return nil | ||
} | ||
return []config.MSI{ | ||
WinPackage(dist), | ||
|
@@ -160,9 +195,9 @@ func WinPackage(dist string) config.MSI { | |
} | ||
} | ||
|
||
func Packages(dist string) (r []config.NFPM) { | ||
func Packages(dist string) []config.NFPM { | ||
if dist == K8sDistro { | ||
return []config.NFPM{} | ||
return nil | ||
} | ||
return []config.NFPM{ | ||
Package(dist), | ||
|
@@ -191,21 +226,17 @@ func Package(dist string) config.NFPM { | |
}) | ||
} | ||
return config.NFPM{ | ||
ID: dist, | ||
Builds: []string{dist}, | ||
Formats: []string{"deb", "rpm"}, | ||
|
||
ID: dist, | ||
Builds: []string{dist}, | ||
Formats: []string{"deb", "rpm"}, | ||
License: "Apache 2.0", | ||
Description: fmt.Sprintf("OpenTelemetry Collector - %s", dist), | ||
Maintainer: "The OpenTelemetry Collector maintainers <[email protected]>", | ||
Overrides: map[string]config.NFPMOverridables{ | ||
"rpm": { | ||
Dependencies: []string{ | ||
"/bin/sh", | ||
}, | ||
Dependencies: []string{"/bin/sh"}, | ||
}, | ||
}, | ||
|
||
NFPMOverridables: config.NFPMOverridables{ | ||
PackageName: dist, | ||
Scripts: config.NFPMScripts{ | ||
|
@@ -219,16 +250,14 @@ func Package(dist string) config.NFPM { | |
} | ||
|
||
func DockerImages(dist string) []config.Docker { | ||
r := make([]config.Docker, 0) | ||
var r []config.Docker | ||
for _, arch := range Architectures { | ||
if dist == K8sDistro { | ||
if _, ok := K8sDockerSkipArchs[arch]; ok { | ||
continue | ||
} | ||
if dist == K8sDistro && K8sDockerSkipArchs[arch] { | ||
continue | ||
} | ||
switch arch { | ||
case ArmArch: | ||
for _, vers := range ArmVersions { | ||
for _, vers := range ArmVersions(dist) { | ||
r = append(r, DockerImage(dist, arch, vers)) | ||
} | ||
default: | ||
|
@@ -302,7 +331,7 @@ func DockerManifest(prefix, version, dist string) config.DockerManifest { | |
} | ||
switch arch { | ||
case ArmArch: | ||
for _, armVers := range ArmVersions { | ||
for _, armVers := range ArmVersions(dist) { | ||
dockerArchTag := strings.ReplaceAll(archName(arch, armVers), "/", "") | ||
imageTemplates = append( | ||
imageTemplates, | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.