From 855ad663ca82c09f417cceaeb031907016e2af48 Mon Sep 17 00:00:00 2001 From: Manuel Buil Date: Fri, 1 Mar 2024 10:05:31 +0100 Subject: [PATCH] Add github actions Signed-off-by: Manuel Buil --- .github/dependabot.yml | 23 ++++++++++++++ .github/workflows/updatecli.yml | 55 +++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/updatecli.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..434b297 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +version: 2 +updates: + + # Maintain dependencies for Docker Images + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + labels: + - "kind/dependabot" + reviewers: + - "rancher/k3s" + + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + labels: + - "kind/dependabot" + reviewers: + - "rancher/k3s" + diff --git a/.github/workflows/updatecli.yml b/.github/workflows/updatecli.yml new file mode 100644 index 0000000..244d457 --- /dev/null +++ b/.github/workflows/updatecli.yml @@ -0,0 +1,55 @@ +name: "Updatecli: Dependency Management" + +on: + schedule: + # Runs at 06 PM UTC + - cron: '0 18 * * *' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +permissions: + contents: write + issues: write + pull-requests: write + +jobs: + updatecli: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/master' + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: 'stable' + + - name: Install Updatecli + uses: updatecli/updatecli-action@v2 + + - name: Delete leftover UpdateCLI branches + run: | + gh pr list \ + --search "is:closed is:pr head:updatecli_" \ + --json headRefName \ + --jq ".[].headRefName" | sort -u > closed_prs_branches.txt + gh pr list \ + --search "is:open is:pr head:updatecli_" \ + --json headRefName \ + --jq ".[].headRefName" | sort -u > open_prs_branches.txt + for branch in $(comm -23 closed_prs_branches.txt open_prs_branches.txt); do + if (git ls-remote --exit-code --heads origin "$branch"); then + echo "Deleting leftover UpdateCLI branch - $branch"; + git push origin --delete "$branch"; + fi + done + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Apply Updatecli + # Never use '--debug' option, because it might leak the access tokens. + run: "updatecli apply --clean --config ./updatecli/updatecli.d/ --values ./updatecli/values.yaml" + env: + UPDATECLI_GITHUB_ACTOR: ${{ github.actor }} + UPDATECLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}