From a7c9ba002d6308914659dcd883b8a5b0da71e9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20T=C3=B6lle?= Date: Sun, 19 May 2024 22:57:10 +0200 Subject: [PATCH 1/3] chore: nix flake for CLI --- .github/release-please-config.json | 2 +- flake.lock | 61 ++++++++++++++++++++++++++++++ flake.nix | 27 +++++++++++++ hcloud-upload-image.nix | 44 +++++++++++++++++++++ 4 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 hcloud-upload-image.nix diff --git a/.github/release-please-config.json b/.github/release-please-config.json index f7f8d01..0650f09 100644 --- a/.github/release-please-config.json +++ b/.github/release-please-config.json @@ -8,7 +8,7 @@ ".": { "component": "cli", "package-name": "hcloud-upload-image", - "extra-files": ["internal/version/version.go"] + "extra-files": ["internal/version/version.go", "hcloud-upload-image.nix"] }, "hcloudimages": { "component": "hcloudimages", diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..9ed244b --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1715961556, + "narHash": "sha256-+NpbZRCRisUHKQJZF3CT+xn14ZZQO+KjxIIanH3Pvn4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4a6b83b05df1a8bd7d99095ec4b4d271f2956b64", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..a0938be --- /dev/null +++ b/flake.nix @@ -0,0 +1,27 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # unstable for go 1.22 + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + system = system; + }; + hcloud-upload-image = pkgs.callPackage ./hcloud-upload-image.nix { }; + in + { + packages = { + default = hcloud-upload-image; + }; + + devShells = { + default = pkgs.mkShell { + packages = [ hcloud-upload-image ]; + }; + }; + } + ); +} diff --git a/hcloud-upload-image.nix b/hcloud-upload-image.nix new file mode 100644 index 0000000..166df09 --- /dev/null +++ b/hcloud-upload-image.nix @@ -0,0 +1,44 @@ +{ config, pkgs, fetchFromGitHub, ... }: + +pkgs.buildGo122Module rec { + pname = "hcloud-upload-image"; + version = "v0.2.1"; # x-release-please-version + #src = pkgs.fetchFromGitHub { + # owner = "apricote"; + # repo = "hcloud-upload-image"; + # rev = version; + # sha256 = "KYhmMo/GDiLOWuEtdiY/KDwh1MO3crAFN2SGiL8FFIU="; + #}; + src = ./.; + + vendorHash = ""; + overrideModAttrs = _: { + #outputHash = "sha256-/FluEFTvrX07L4kGPH7jPrcRhwdrCz1p4OVErNegNLw="; + #outputHash = null; + #outputHashAlgo = null; + #outputHashMode = null; + }; + + nativeBuildInputs = [ + pkgs.installShellFiles + ]; + + preBuild = '' + export GOWORK=off + ''; + + subPackages = [ "." ]; # We only need to CLI, fails with the "hcloudimages" module otherwise + CGO_ENABLED = "0"; + + ldflags = [ + "-X github.com/apricote/hcloud-upload-image/internal/version.version=${version}" + "-X github.com/apricote/hcloud-upload-image/internal/version.versionPrerelease=" + ]; + + postInstall = '' + installShellCompletion --cmd hcloud-upload-image \ + --bash <($out/bin/hcloud-upload-image completion bash) \ + --fish <($out/bin/hcloud-upload-image completion fish) \ + --zsh <($out/bin/hcloud-upload-image completion zsh) + ''; +} From baf35bb218fd194a284a3b212b85aef7a8c9fdc9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 23:19:55 +0100 Subject: [PATCH 2/3] chore(deps): update dependency golangci/golangci-lint to v1.62.0 (#50) --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2be498c..2188411 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,13 +20,13 @@ jobs: - name: Run golangci-lint (CLI) uses: golangci/golangci-lint-action@v6 with: - version: v1.61.0 # renovate: datasource=github-releases depName=golangci/golangci-lint + version: v1.62.0 # renovate: datasource=github-releases depName=golangci/golangci-lint args: --timeout 5m - name: Run golangci-lint (Lib) uses: golangci/golangci-lint-action@v6 with: - version: v1.61.0 # renovate: datasource=github-releases depName=golangci/golangci-lint + version: v1.62.0 # renovate: datasource=github-releases depName=golangci/golangci-lint args: --timeout 5m working-directory: hcloudimages From 6cc128ffe945135ef088f74c775b525c37d3b5e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 23:20:05 +0100 Subject: [PATCH 3/3] chore(deps): update module github.com/hetznercloud/hcloud-go/v2 to v2.16.0 (#49) --- go.mod | 2 +- go.sum | 4 ++-- hcloudimages/go.mod | 2 +- hcloudimages/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 829b2c0..58e6e8c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.22.2 require ( github.com/apricote/hcloud-upload-image/hcloudimages v0.3.0 - github.com/hetznercloud/hcloud-go/v2 v2.15.0 + github.com/hetznercloud/hcloud-go/v2 v2.16.0 github.com/spf13/cobra v1.8.1 ) diff --git a/go.sum b/go.sum index dd3b8f0..25f99ba 100644 --- a/go.sum +++ b/go.sum @@ -10,8 +10,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/hetznercloud/hcloud-go/v2 v2.15.0 h1:6mpMJ/RuX1woZj+MCJdyKNEX9129KDkEIDeeyfr4GD4= -github.com/hetznercloud/hcloud-go/v2 v2.15.0/go.mod h1:h8sHav+27Xa+48cVMAvAUMELov5h298Ilg2vflyTHgg= +github.com/hetznercloud/hcloud-go/v2 v2.16.0 h1:s5wZFMX6/hZxONbD19pZ+JWvGaf2I7zH+f/Cem2ICAQ= +github.com/hetznercloud/hcloud-go/v2 v2.16.0/go.mod h1:h8sHav+27Xa+48cVMAvAUMELov5h298Ilg2vflyTHgg= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= diff --git a/hcloudimages/go.mod b/hcloudimages/go.mod index ede59f3..b3292e0 100644 --- a/hcloudimages/go.mod +++ b/hcloudimages/go.mod @@ -3,7 +3,7 @@ module github.com/apricote/hcloud-upload-image/hcloudimages go 1.22.2 require ( - github.com/hetznercloud/hcloud-go/v2 v2.15.0 + github.com/hetznercloud/hcloud-go/v2 v2.16.0 github.com/stretchr/testify v1.9.0 golang.org/x/crypto v0.28.0 ) diff --git a/hcloudimages/go.sum b/hcloudimages/go.sum index a356040..a4d9bed 100644 --- a/hcloudimages/go.sum +++ b/hcloudimages/go.sum @@ -6,8 +6,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/hetznercloud/hcloud-go/v2 v2.15.0 h1:6mpMJ/RuX1woZj+MCJdyKNEX9129KDkEIDeeyfr4GD4= -github.com/hetznercloud/hcloud-go/v2 v2.15.0/go.mod h1:h8sHav+27Xa+48cVMAvAUMELov5h298Ilg2vflyTHgg= +github.com/hetznercloud/hcloud-go/v2 v2.16.0 h1:s5wZFMX6/hZxONbD19pZ+JWvGaf2I7zH+f/Cem2ICAQ= +github.com/hetznercloud/hcloud-go/v2 v2.16.0/go.mod h1:h8sHav+27Xa+48cVMAvAUMELov5h298Ilg2vflyTHgg= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=