Files
node-problem-detector/.github/workflows/update-deps.yml
Kubernetes Prow Robot 200d46726c Merge pull request #912 from sozercan/secure-repo
[StepSecurity] Apply security best practices
2024-09-18 18:00:44 +01:00

106 lines
3.8 KiB
YAML

name: 'Update Dependencies'
on:
workflow_dispatch:
schedule:
- cron: '0 20 * * 4'
env:
GOPROXY: https://proxy.golang.org
permissions:
contents: write
pull-requests: write
jobs:
update-deps:
if: ${{ github.repository == 'kubernetes/node-problem-detector' }}
runs-on: ubuntu-22.04
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
with:
go-version: '1.22.3'
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- name: Update Dependencies
id: update_deps
run: |
make depup
echo 'changes<<EOF' >> $GITHUB_OUTPUT
git status --porcelain >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.update_deps.outputs.changes != '' }}
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v6.0.5
with:
title: 'Update dependencies'
commit-message: Update dependencies
committer: github-actions <actions@github.com>
author: github-actions <actions@github.com>
branch: dependencies/update
branch-suffix: timestamp
base: master
delete-branch: true
labels: ok-to-test
body: |
Updating go.mod with latest dependencies...
update-go-version:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get current Go version from Dockerfile
id: current-go-version
run: |
# Read the Dockerfile content
DOCKERFILE_CONTENT=$(cat Dockerfile)
# Extract the current Go version using regex
CURRENT_GO_VERSION=$(echo "$DOCKERFILE_CONTENT" | grep -oP 'FROM golang:\K\d+\.\d+(\.\d+)?')
echo "current_go_version=${CURRENT_GO_VERSION}" >> $GITHUB_OUTPUT
- name: Get latest Go version
id: go-version
run: |
# Fetch the Go download page and extract the latest version
LATEST_GO_VERSION=$(curl -s https://go.dev/dl/ | grep -oP 'go1\.22\.\d+' | sort -rV | head -n 1)
echo "latest_go_version=${LATEST_GO_VERSION}" >> $GITHUB_OUTPUT
- name: Update Go version
uses: jacobtomlinson/gha-find-replace@v2
with:
find: "FROM golang:${{ steps.current-go-version.outputs.current_go_version }}-bookworm as builder-base"
replace: "FROM golang:${{ steps.go-version.outputs.latest_go_version }}-bookworm as builder-base"
path: "Dockerfile"
- name: Check if Go version was updated
id: check-changes
run: |
if [[ ${{ steps.current-go-version.outputs.current_go_version }} != ${{ steps.go-version.outputs.latest_go_version }} ]]; then
echo "changes=true" >> $GITHUB_OUTPUT
else
echo "changes=false" >> $GITHUB_OUTPUT
fi
- name: Create Pull Request
if: ${{ steps.check-changes.outputs.changes == 'true' }} # Only create PR if there were changes
uses: peter-evans/create-pull-request@v6
with:
title: 'Update Go version in Dockerfile'
commit-message: 'Update Go version in Dockerfile'
committer: github-actions <actions@github.com>
author: github-actions <actions@github.com>
branch: go-version-update # Choose a suitable branch name
branch-suffix: timestamp
base: master
delete-branch: true
labels: ok-to-test
body: |
This PR updates the Go version in the Dockerfile to ${{ steps.go-version.outputs.latest_go_version }}.