opentelemetry-collector-releases: add updateScript

Before this there was no auto-updates for
opentelemetry-collector-releases, but since
opentelemetry-collector-builder received auto-updates the versioning
regularly broke. This adds an updateScript that updates both at the
same time.
This commit is contained in:
liv
2026-07-14 22:18:35 +02:00
parent a3a744eacd
commit 455149b38f
3 changed files with 38 additions and 13 deletions
@@ -6,7 +6,7 @@
buildGoModule rec {
pname = "ocb";
# Also update `pkgs/tools/misc/opentelemetry-collector/releases.nix`
# whenever that version changes.
# whenever this version changes.
version = "0.155.0";
src = fetchFromGitHub {
@@ -31,6 +31,8 @@ buildGoModule rec {
"-skip TestGenerateAndCompile|TestReplaceStatementsAreComplete|TestVersioning|TestRunInit"
];
passthru.updateScript = ./update.sh;
# Rename to ocb (it's generated as "builder")
postInstall = ''
mv $out/bin/builder $out/bin/ocb
@@ -4,9 +4,7 @@
fetchFromGitHub,
installShellFiles,
testers,
nixosTests,
opentelemetry-collector-builder,
pkgs,
go,
git,
cacert,
@@ -17,12 +15,10 @@ let
builder = "${opentelemetry-collector-builder}/bin/ocb";
# Keep the version in sync with the builder.
rev = opentelemetry-collector-builder.src.rev;
version = lib.removePrefix "cmd/builder/v" rev;
version = "0.151.0";
# This is a weird meta-repo where all the open-telemetry collectors are.
src = fetchFromGitHub {
releasesSrc = fetchFromGitHub {
owner = "open-telemetry";
repo = "opentelemetry-collector-releases";
rev = "v${version}";
@@ -39,7 +35,10 @@ let
hash,
}:
stdenv.mkDerivation {
inherit name;
# Inherit the version from the builder, so that updates there trigger
# a rebuild here.
inherit version;
pname = "${name}-src";
nativeBuildInputs = [
cacert
@@ -47,7 +46,7 @@ let
go
];
inherit src;
src = releasesSrc;
outputHash = hash;
outputHashMode = "recursive";
@@ -117,11 +116,16 @@ let
--zsh <($out/bin/${name} completion zsh)
'';
passthru.tests = {
version = testers.testVersion {
inherit package version;
command = "${name} -v";
passthru = {
tests = {
version = testers.testVersion {
inherit package version;
command = "${name} -v";
};
};
# The updatescript for the builder updates the releases
updateScript = null;
inherit releasesSrc;
};
meta = {
+19
View File
@@ -0,0 +1,19 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl jq nix-update common-updater-scripts
set -euf
# Get latest version from releases repo
version=$(curl https://api.github.com/repos/open-telemetry/opentelemetry-collector-releases/releases/latest | jq -r '.name')
version=${version#v}
# Update builder
nix-update opentelemetry-collector-builder --version="${version}"
# Update the otel-collector-releases source
update-source-version opentelemetry-collector-releases.otelcol "${version}" --source-key="releasesSrc"
# Update the individual distributions
for dist in {"",-contrib,-k8s,-otlp}
do
nix-update "opentelemetry-collector-releases.otelcol${dist}" --version skip
done