From 9cbf16baa87f63d2177b989d975cfebadeea4e63 Mon Sep 17 00:00:00 2001 From: Camila Macedo Date: Wed, 6 Sep 2023 12:25:16 +0100 Subject: [PATCH] add github action to run make test --- .../internal/templates/test_gh_action.go | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 pkg/plugins/golang/v4/scaffolds/internal/templates/test_gh_action.go diff --git a/pkg/plugins/golang/v4/scaffolds/internal/templates/test_gh_action.go b/pkg/plugins/golang/v4/scaffolds/internal/templates/test_gh_action.go new file mode 100644 index 00000000000..c54c3a4ccd6 --- /dev/null +++ b/pkg/plugins/golang/v4/scaffolds/internal/templates/test_gh_action.go @@ -0,0 +1,71 @@ +/* +Copyright 2023 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package templates + +import ( + "sigs.k8s.io/kubebuilder/v3/pkg/machinery" +) + +var _ machinery.Template = &GolangciGHAction{} + +// GolangciGHAction scaffolds a file that defines Golangci GitHub Actions +type GolangciGHAction struct { + machinery.TemplateMixin + machinery.ProjectNameMixin +} + +// SetTemplateDefaults implements file.Template +func (f *GolangciGHAction) SetTemplateDefaults() error { + if f.Path == "" { + f.Path = ".workflows/unit-test.yml" + } + + f.TemplateBody = golangciGitHubActionTemplate + + f.IfExistsAction = machinery.SkipFile + + return nil +} + +//nolint:lll +const golangciGitHubActionTemplate = `name: Unit tests + +# Trigger the workflow on pull requests and direct pushes to any branch +on: + push: + pull_request: + +jobs: + test: + name: Test + runs-on: ubuntu-latest + # Pull requests from the same repository won't trigger this checks as they were already triggered by the push + if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) + steps: + - name: Clone the code + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: '~1.20' + # This step is needed as the following one tries to remove + # kustomize for each test but has no permission to do so + - name: Remove pre-installed kustomize + run: sudo rm -f /usr/local/bin/kustomize + - name: Perform the test + run: make test +`