Compare commits

..

2 Commits

Author SHA1 Message Date
Kristoffer Dalby f20f1f1278 ci: bump Mic92/hestia to v2.0.0
Point the action at the repo root, which is the canonical entry point
in v2; the /action subpath is now a deprecated shim.

Closes #3356
2026-07-21 13:28:35 +02:00
Kristoffer Dalby 8eec2dbdc2 build: bump Go toolchain to 1.26.5
Tailscale HEAD go.mod now requires go >= 1.26.5; build images pinned
1.26.4. Bump go.mod, the four Go Dockerfiles, and the nixpkgs pin
(staging-next-26.05 ships go_1_26 1.26.5; unstable still lags).
2026-07-20 12:27:47 +02:00
25 changed files with 47 additions and 279 deletions
+10 -1
View File
@@ -1 +1,10 @@
* @juanfont @kradalby @nblock
* @juanfont @kradalby
*.md @ohdearaugustin @nblock
*.yml @ohdearaugustin @nblock
*.yaml @ohdearaugustin @nblock
Dockerfile* @ohdearaugustin @nblock
.goreleaser.yaml @ohdearaugustin @nblock
/docs/ @ohdearaugustin @nblock
/.github/workflows/ @ohdearaugustin @nblock
/.github/renovate.json @ohdearaugustin @nblock
-119
View File
@@ -1,119 +0,0 @@
# Vouched (or actively denounced) users for this repository.
#
# Headscale gates pull requests to vouched contributors only. Issues
# remain open to everyone see CONTRIBUTING.md for the rationale and
# the process for getting vouched.
#
# A denounced user (prefix `-`) is explicitly blocked from contributing.
#
# Syntax:
# - One handle per line (without @). Sorted alphabetically.
# - Optionally specify platform: `platform:username` (e.g., `github:nblock`).
# - To denounce, prefix with minus: `-username` or `-platform:username`.
# - Optionally, add a comment after a space following the handle.
#
# Maintainers can vouch for new contributors by commenting `!vouch` (or
# `!vouch @username`) on any issue or PR by the author. `!denounce` blocks.
aalmenar
adoolaard
adriangoransson
Aluxima
AlynxZhou
apollo13
aradng
ArcticLampyrid
bobelev
ChibangLW
christian-heusel
ckiee
codethief
cure
dmeremyanin
dotlambda
dragetd
e-zk
edvardvb
enoperm
EtaoinWu
evenh
eyJhb
felixscheinost
FlorinPeter
fredrikekre
griffer
GrigoriyMikhalkin
gymnae
huskyii
igrikus
ImpostorKeanu
isaac-mcfadyen
iSchluff
ItalyPaleAle
ItsShadowCone
jdewinne
joachimtingvold
jonathanspw
juanfont
kazauwa
korfuri
kradalby
linsomniac
lyc8503
madjam002
majst01
maprambo
marcelmindemann
maxpain
mevansam
mike-lloyd03
motiejus
mpldr
nblock
negbie
Nemo157
nicka101
Niek
nielscil
NoelGisler
noseshimself
ohdearaugustin
oplik0
Orhideous
pallabpain
philippderdiedas
Polsaker
PowershellScripter
ptman
puzpuzpuz
pvinis
qbit
QEDeD
qoke
Qup42
redstonekasi
restanrm
reynico
Riezebos
samson4649
SlackingVeteran
spymobilfon
stavros-k
stblassitude
SuperSandro2000
SysAdminSmith
sysvinit
teleclimber
tgrushka
thebigbone
tianon
TotoTheDragon
tsujamin
unreality
vbrandl
vdovhanych
victorhooi
vsychov
yaneony
yaroslavkasatikov
Zottelchen
-25
View File
@@ -1,25 +0,0 @@
Hi @{author}, thanks for your interest in headscale.
Headscale gates pull requests to vouched contributors only. Your account
isn't on the list yet, so this PR has been auto-closed. This is **not** a
judgment of you or this change.
Headscale is an "Open Source, acknowledged contribution" project: every
contribution starts with a discussion on the issue tracker, **before** any
code is written. See [`CONTRIBUTING.md`](https://github.com/juanfont/headscale/blob/main/CONTRIBUTING.md)
for the full policy and the rationale.
To get vouched:
1. Open an issue describing the change you'd like to make (use case,
implementation sketch, who will maintain it). For bug fixes, a clear
reproduction is enough.
2. Engage with maintainers on the issue. Once we've agreed on scope and
approach, a maintainer will `!vouch @{author}`.
3. You can then reopen this PR (or open a new one) and it will pass the
gate.
Issues remain open to everyone — no vouching needed there, and that's the
intended starting point for any contribution.
The vouched list: [`.github/VOUCHED.td`](https://github.com/juanfont/headscale/blob/main/.github/VOUCHED.td).
+1 -1
View File
@@ -19,4 +19,4 @@ If you find mistakes in the documentation, please submit a fix to the documentat
- [ ] updated documentation if needed
- [ ] updated CHANGELOG.md
<!-- If applicable, please reference the issue using `Fixes #XXX` and add tests to cover your new code. -->
<!-- If applicable, please reference the issue using `Fixes #XXX` and add tests to cover your new code. -->
+2 -2
View File
@@ -35,7 +35,7 @@ jobs:
- 'config-example.yaml'
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
if: steps.changed-files.outputs.files == 'true'
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
if: steps.changed-files.outputs.files == 'true'
- name: Check vendor hash
@@ -82,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: Run go cross compile
env:
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
- 'tools/**'
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
if: steps.changed-files.outputs.files == 'true'
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
if: steps.changed-files.outputs.files == 'true'
- name: Run make generate
+1 -1
View File
@@ -30,7 +30,7 @@ jobs:
- 'config-example.yaml'
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
if: steps.changed-files.outputs.files == 'true'
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
if: steps.changed-files.outputs.files == 'true'
- name: Generate and check integration tests
+2 -2
View File
@@ -45,7 +45,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: Set commit timestamp
run: echo "SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)" >> $GITHUB_ENV
@@ -93,7 +93,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: Build binary
env:
+1 -1
View File
@@ -32,7 +32,7 @@ jobs:
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: Run garbage collection
run: '"${HESTIA_BIN}" gc ${{ inputs.dry-run && ''--dry-run'' || '''' }}'
env:
+4 -4
View File
@@ -24,7 +24,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: build
run: nix build -L .#checks.x86_64-linux.build
@@ -33,7 +33,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: gotest
run: nix build -L .#checks.x86_64-linux.gotest
@@ -42,7 +42,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: golangci-lint
run: nix build -L .#checks.x86_64-linux.golangci-lint
@@ -51,6 +51,6 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: formatting
run: nix build -L .#checks.x86_64-linux.formatting
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
if: steps.changed-files.outputs.nix == 'true' || steps.changed-files.outputs.go == 'true'
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
if: steps.changed-files.outputs.nix == 'true' || steps.changed-files.outputs.go == 'true'
- name: Run NixOS module tests
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: Run goreleaser
run: goreleaser release --clean
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: go test ./hscontrol/servertest
env:
+2 -2
View File
@@ -41,7 +41,7 @@ jobs:
- 'Dockerfile.*'
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
if: steps.changed-files.outputs.files == 'true'
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
if: steps.changed-files.outputs.files == 'true'
- name: Build binaries and warm Go cache
if: steps.changed-files.outputs.files == 'true'
@@ -160,7 +160,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: NixOS/nix-installer-action@6b8548fe06acfb0155a50ab5d561accb215764cc # main
- uses: Mic92/hestia/action@ff07bb902a9968ac0c3d0e51d90a606662a375d8 # main
- uses: Mic92/hestia@fb239a2f72d4b6e26eec5425f289dea23b27a527 # v2.0.0
- name: Force overlay2 storage driver
run: |
sudo mkdir -p /etc/docker
-30
View File
@@ -1,30 +0,0 @@
name: "Vouch - Check PR"
on:
pull_request_target:
types: [opened, reopened]
permissions:
pull-requests: write
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-token
with:
app-id: ${{ secrets.VOUCH_APP_ID }}
private-key: ${{ secrets.VOUCH_APP_PRIVATE_KEY }}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
sparse-checkout: .github/pr-unvouched-message
- uses: mitchellh/vouch/action/check-pr@d66fa29a64600490892131ad87597c30c91fcac4 # v1.5.0
with:
pr-number: ${{ github.event.pull_request.number }}
auto-close: true
template-file: .github/pr-unvouched-message
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
@@ -1,36 +0,0 @@
name: "Vouch - Manage by Issue"
on:
issue_comment:
types: [created]
concurrency:
group: vouch-manage
cancel-in-progress: false
jobs:
manage:
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-token
with:
app-id: ${{ secrets.VOUCH_APP_ID }}
private-key: ${{ secrets.VOUCH_APP_PRIVATE_KEY }}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
token: ${{ steps.app-token.outputs.token }}
- uses: mitchellh/vouch/action/manage-by-issue@d66fa29a64600490892131ad87597c30c91fcac4 # v1.5.0
with:
repo: ${{ github.repository }}
issue-id: ${{ github.event.issue.number }}
comment-id: ${{ github.event.comment.id }}
vouch-keyword: "!vouch"
denounce-keyword: "!denounce"
unvouch-keyword: "!unvouch"
pull-request: "true"
merge-immediately: "true"
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
@@ -1,32 +0,0 @@
name: "Vouch - Sync CODEOWNERS"
on:
schedule:
- cron: "0 0 * * 1"
workflow_dispatch:
concurrency:
group: vouch-manage
cancel-in-progress: false
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-token
with:
app-id: ${{ secrets.VOUCH_APP_ID }}
private-key: ${{ secrets.VOUCH_APP_PRIVATE_KEY }}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
token: ${{ steps.app-token.outputs.token }}
- uses: mitchellh/vouch/action/sync-codeowners@d66fa29a64600490892131ad87597c30c91fcac4 # v1.5.0
with:
repo: ${{ github.repository }}
pull-request: "true"
merge-immediately: "true"
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
+1 -1
View File
@@ -1,6 +1,6 @@
# For testing purposes only
FROM golang:1.26.4-alpine AS build-env
FROM golang:1.26.5-alpine AS build-env
WORKDIR /go/src
+1 -1
View File
@@ -2,7 +2,7 @@
# and are in no way endorsed by Headscale's maintainers as an
# official nor supported release or distribution.
FROM docker.io/golang:1.26.4-trixie AS builder
FROM docker.io/golang:1.26.5-trixie AS builder
ARG VERSION=dev
ENV GOPATH /go
WORKDIR /go/src/headscale
+1 -1
View File
@@ -4,7 +4,7 @@
# This Dockerfile is more or less lifted from tailscale/tailscale
# to ensure a similar build process when testing the HEAD of tailscale.
FROM golang:1.26.4-alpine AS build-env
FROM golang:1.26.5-alpine AS build-env
WORKDIR /go/src
+1 -1
View File
@@ -7,7 +7,7 @@
# to drive a real browser-style WebSocket GET against headscale's /ts2021,
# guarding the regression in issue #3357.
FROM golang:1.26.4-alpine AS build
FROM golang:1.26.5-alpine AS build
WORKDIR /src
Generated
+6 -6
View File
@@ -9,11 +9,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1781951072,
"narHash": "sha256-hA9u6hB4QzpReP8hudxqiaa4vLhoRvtXi6YmUgJRGEs=",
"lastModified": 1783015821,
"narHash": "sha256-vmzYTZxIAy3OYXwkRL5GQYk8fNnh8TLWcxQRIO3ywOU=",
"owner": "kradalby",
"repo": "flake-checks",
"rev": "3d2882efec5cf10f8b5a8a035d93ba6ba9f21717",
"rev": "3c821706eb0bd07f515f9a7726b650ccae927433",
"type": "github"
},
"original": {
@@ -60,11 +60,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1781153106,
"narHash": "sha256-yzsroLCcuRG4KdGMxWt0eXKOrRSgQT8/xjYngeq9ujU=",
"lastModified": 1784421286,
"narHash": "sha256-YKn3t7FvaargtyNHbrOw+qzDM+93q5kSCREUPNxeZQs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9ee75f111a06d7ab2b2f729698a8eff53d54e070",
"rev": "62eaae30cd05c04718500ddb44e7ef85cd45ddd5",
"type": "github"
},
"original": {
+8 -7
View File
@@ -2,11 +2,12 @@
description = "headscale - Open Source Tailscale Control server";
inputs = {
# Pinned to staging-next-26.05 for Go 1.26.4 (security fix GO-2026-5037/5039):
# nixpkgs-unstable still ships 1.26.3 — the bump is merged to nixpkgs staging
# but the large-rebuild staging->unstable pipeline lags. The 26.05 line is
# otherwise current (dev tools match unstable). Switch back to nixpkgs-unstable
# once it ships go_1_26 >= 1.26.4.
# Pinned to staging-next-26.05 for Go 1.26.5: the Tailscale HEAD build
# (Dockerfile.tailscale-HEAD) requires go >= 1.26.5, and nixpkgs-unstable
# still ships 1.26.4 — the bump is merged to nixpkgs staging but the
# large-rebuild staging->unstable pipeline lags. The 26.05 line is otherwise
# current (dev tools match unstable). Switch back to nixpkgs-unstable once it
# ships go_1_26 >= 1.26.5.
nixpkgs.url = "github:NixOS/nixpkgs/staging-next-26.05";
flake-utils.url = "github:numtide/flake-utils";
# Reusable Go flake checks (build/test/lint/format); CI runs them via
@@ -36,7 +37,7 @@
overlays.default = _: prev:
let
pkgs = nixpkgs.legacyPackages.${prev.stdenv.hostPlatform.system};
# Go 1.26 builder; resolves to Go 1.26.4 from the pinned nixpkgs.
# Go 1.26 builder; resolves to Go 1.26.5 from the pinned nixpkgs.
buildGo = pkgs.buildGo126Module;
vendorHash = (builtins.fromJSON (builtins.readFile ./flakehashes.json)).vendor.sri;
in
@@ -72,7 +73,7 @@
};
# Build golangci-lint with stock Go 1.26 (upstream uses hardcoded Go
# version); it does not build against the pinned 1.26.4.
# version); it does not build against the pinned 1.26.5.
golangci-lint = buildGo rec {
pname = "golangci-lint";
version = "2.12.2";
+1 -1
View File
@@ -1,6 +1,6 @@
{
"vendor": {
"goModSum": "sha256-SJml8RXGmb2p0g1nOsHn86FA1hwgd5ZffLSkUj5zek8=",
"goModSum": "sha256-t1RAYi36JEii5nGldY546oWGD/3SwxQU09/pTrDadIk=",
"sri": "sha256-pjGNuVtgFFzWNq/2cK7a4iyF13AfcHz098nk92a9Ido="
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/juanfont/headscale
go 1.26.4
go 1.26.5
require (
github.com/arl/statsviz v0.8.0