From ad2a6ca7cf75b6fc14beb9a9f3dcaadd72219f00 Mon Sep 17 00:00:00 2001 From: Jimmi Dyson Date: Mon, 22 Jan 2024 14:14:45 +0000 Subject: [PATCH] build: Add devbox update scheduled job --- .github/workflows/devbox-update.yaml | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/devbox-update.yaml diff --git a/.github/workflows/devbox-update.yaml b/.github/workflows/devbox-update.yaml new file mode 100644 index 000000000..10c4e8030 --- /dev/null +++ b/.github/workflows/devbox-update.yaml @@ -0,0 +1,59 @@ +# Copyright 2024 D2iQ, Inc. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +name: devbox-update + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + +permissions: + contents: write + pull-requests: write + +jobs: + devbox-update: + if: github.ref_type == 'branch' + runs-on: ubuntu-22.04 + defaults: + run: + shell: bash + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Install devbox + uses: jetpack-io/devbox-install-action@v0.7.0 + with: + enable-cache: true + + - name: Run devbox update + run: devbox update + + - name: Get number of versions changed + id: devbox-versions-changed + run: | + echo "number_changed=$(git diff --unified=0 devbox.lock | grep -c \"version\":)" >>"${GITHUB_OUTPUT}" + + - name: Commit changes and create PR + if: steps.devbox-versions-changed.outputs.number_changed > 0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + FILE_TO_COMMIT: devbox.lock + DESTINATION_BRANCH: scheduled-devbox-update-${{ github.ref_name }} + run: | + git branch "${DESTINATION_BRANCH}" + git push origin "${DESTINATION_BRANCH}" + + TODAY="$( date -u '+%Y-%m-%d' )" + MESSAGE="build(${{ github.ref_name }}): Latest devbox update (${TODAY})" + SHA=$( git rev-parse "${DESTINATION_BRANCH}":"${FILE_TO_COMMIT}" ) + gh api --method PUT "/repos/:owner/:repo/contents/${FILE_TO_COMMIT}" \ + --field message="${MESSAGE}" \ + --field content=@<( base64 -i "${FILE_TO_COMMIT}" ) \ + --field encoding="base64" \ + --field branch="${DESTINATION_BRANCH}" \ + --field sha="${SHA}" + + gh pr create --base "${{ github.ref_name }}" --head "${DESTINATION_BRANCH}" --fill