Add support for pre-created Kubernetes secrets in Helm chart #4459
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| - renovate/** | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| goos: [ linux ] | |
| goarch: [ amd64, arm64, arm ] | |
| env: | |
| GOOS: ${{ matrix.goos }} | |
| GOARCH: ${{ matrix.goarch }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version-file: 'go.mod' | |
| - name: Build binary | |
| run: make build | |
| - name: Build Docker image | |
| if: matrix.goos == 'linux' && matrix.goarch == 'amd64' | |
| run: make image | |
| - name: Run CI checks | |
| if: matrix.goos == 'linux' && matrix.goarch == 'amd64' | |
| run: make ci | |
| chart-lint: | |
| name: Helm chart Lint | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| kubernetes-version: ["v1.34.0", "v1.33.0", "v1.32.0", "v1.31.0", "v1.30.0"] | |
| cri: [ containerd ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: azure/setup-kubectl@v4 | |
| with: | |
| version: v1.32.0 | |
| - uses: azure/setup-helm@v4 | |
| with: | |
| version: v3.19.4 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.14' | |
| - uses: helm/chart-testing-action@v2.8.0 | |
| - name: Add newrelic repository | |
| run: helm repo add newrelic https://helm-charts.newrelic.com | |
| - name: Lint charts | |
| run: ct --config .github/ct.yaml lint --debug | |
| - name: Check for changed installable charts | |
| id: list-changed | |
| run: | | |
| changed=$(ct --config .github/ct.yaml list-changed) | |
| if [[ -n "$changed" ]]; then | |
| echo "changed=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Run helm unit tests | |
| if: steps.list-changed.outputs.changed == 'true' | |
| run: | | |
| helm plugin install https://github.com/helm-unittest/helm-unittest | |
| for chart in $(ct --config .github/ct.yaml list-changed); do | |
| if [ -d "$chart/tests/" ]; then | |
| helm unittest $chart | |
| else | |
| echo "No unit tests found for $chart" | |
| fi | |
| done | |
| - name: Setup Minikube | |
| uses: manusa/actions-setup-minikube@v2.14.0 | |
| if: steps.list-changed.outputs.changed == 'true' | |
| with: | |
| minikube version: v1.37.0 | |
| kubernetes version: ${{ matrix.kubernetes-version }} | |
| driver: docker | |
| github token: ${{ secrets.GITHUB_TOKEN }} | |
| start args: "--container-runtime=${{ matrix.cri }}" | |
| - uses: actions/setup-go@v6 | |
| if: steps.list-changed.outputs.changed == 'true' | |
| with: | |
| go-version-file: 'go.mod' | |
| - name: Create image for chart testing | |
| if: steps.list-changed.outputs.changed == 'true' | |
| run: | | |
| GOOS=linux GOARCH=amd64 make build # Set GOOS and GOARCH explicitly since Dockerfile expects them in the binary name | |
| DOCKER_BUILDKIT=1 docker build -t e2e/newrelic-metrics-adapter:test . | |
| minikube image load e2e/newrelic-metrics-adapter:test | |
| kubectl create ns ct | |
| - name: Test install charts | |
| if: steps.list-changed.outputs.changed == 'true' | |
| run: ct install --namespace ct --config .github/ct.yaml --debug | |
| - name: Test upgrade charts | |
| if: steps.list-changed.outputs.changed == 'true' | |
| run: ct install --namespace ct --config .github/ct.yaml --debug --upgrade | |
| static-analysis: | |
| name: Static analysis and linting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version-file: 'go.mod' | |
| - uses: newrelic/newrelic-infra-checkers@v1 | |
| with: | |
| golangci-lint-config: golangci-lint | |
| # - name: Semgrep | |
| # uses: returntocorp/semgrep-action@v1 | |
| # with: | |
| # auditOn: push | |
| - name: golangci-lint | |
| uses: golangci/golangci-lint-action@v9 | |
| continue-on-error: ${{ github.event_name != 'pull_request' }} | |
| with: | |
| only-new-issues: true | |
| skip-pkg-cache: true | |
| skip-build-cache: true | |
| codespell: | |
| name: Codespell | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Codespell test | |
| uses: codespell-project/actions-codespell@master | |
| with: | |
| check_filenames: true | |
| check_hidden: true | |
| ignore_words_list: te,enver,NotIn,Bu | |
| skip: ./.git,./internal/generated |