From a49d8d52006eaed7c08dbaa411b92ae3f3363446 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 13 Apr 2022 13:49:18 -0700 Subject: [PATCH] Revert ".github/workflows: work around golang/go#51629" This reverts commit 2a412ac9eeca4d7fca7660543df2dbe80868bf99. Updates #4194 Change-Id: I0098b66b71d20bea301ca79058c1cdd201237dd0 Signed-off-by: Brad Fitzpatrick --- .../workflows/go-generate-without-stringer.sh | 18 ------------------ .github/workflows/go_generate.yml | 13 +++++++------ net/dnsfallback/dnsfallback.go | 2 ++ net/dnsfallback/generate.go | 10 ---------- 4 files changed, 9 insertions(+), 34 deletions(-) delete mode 100755 .github/workflows/go-generate-without-stringer.sh delete mode 100644 net/dnsfallback/generate.go diff --git a/.github/workflows/go-generate-without-stringer.sh b/.github/workflows/go-generate-without-stringer.sh deleted file mode 100755 index 070c8ad68f2cc..0000000000000 --- a/.github/workflows/go-generate-without-stringer.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env sh -# -# This is a temporary hack to work around -# https://github.com/golang/go/issues/51629 , wherein the stringer -# generator doesn't work with generics. -# -# This script is the equivalent of `go generate ./...`, except that it -# only runs generate on packages that don't try to use stringer. - -set -e - -find . -name '*.go' | xargs grep -l go:generate | xargs -n1 dirname | sort -u | while read dir; do - if ! egrep "cmd/(stringer|cloner)" $dir/*.go; then - set -x - go generate -tags=hermetic $dir - set +x - fi -done diff --git a/.github/workflows/go_generate.yml b/.github/workflows/go_generate.yml index bc74e6a849b71..83b8c9df5dd27 100644 --- a/.github/workflows/go_generate.yml +++ b/.github/workflows/go_generate.yml @@ -25,13 +25,14 @@ jobs: fetch-depth: 0 - name: check 'go generate' is clean - # The shell script invocation below is a temporary hack for - # https://github.com/tailscale/tailscale/issues/4194. When - # that issue is fixed, replace its invocation with: - # go generate --tags=hermetic ./... run: | - set -e - ./.github/workflows/go-generate-without-stringer.sh + if [[ "${{github.ref}}" == release-branch/* ]] + then + pkgs=$(go list ./... | grep -v dnsfallback) + else + pkgs=$(go list ./... | grep -v dnsfallback) + fi + go generate $pkgs echo echo git diff --name-only --exit-code || (echo "The files above need updating. Please run 'go generate'."; exit 1) diff --git a/net/dnsfallback/dnsfallback.go b/net/dnsfallback/dnsfallback.go index 20dc3be8c1dc2..8266be1688d73 100644 --- a/net/dnsfallback/dnsfallback.go +++ b/net/dnsfallback/dnsfallback.go @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:generate go run update-dns-fallbacks.go + // Package dnsfallback contains a DNS fallback mechanism // for starting up Tailscale when the system DNS is broken or otherwise unavailable. package dnsfallback diff --git a/net/dnsfallback/generate.go b/net/dnsfallback/generate.go deleted file mode 100644 index 4963a710747e4..0000000000000 --- a/net/dnsfallback/generate.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !hermetic -// +build !hermetic - -package dnsfallback - -//go:generate go run update-dns-fallbacks.go