Skip to content

Commit

Permalink
Added Auto-Update workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabian Grutschus committed Dec 19, 2023
1 parent f566535 commit ab461c0
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 3 deletions.
109 changes: 109 additions & 0 deletions .github/workflows/auto-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Auto Update

on:
schedule:
- cron: "0 7 * * *"
push:

jobs:
auto-update:
name: "Auto-Update Rewinged Docker Image"
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

env:
JSONPATH_ALPINE: .jobs.docker-image-alpine.strategy.matrix.version
JSONPATH_WINDOWS: .jobs.docker-image-windows.strategy.matrix.version
GITHUB_REPO: pdepend/pdepend
steps:
- name: checkout
uses: actions/checkout@v3
with:
token: ${{ secrets.WORKFLOW_TOKEN }}

- uses: octokit/request-action@v2.x
id: pdepend_latest_release
with:
route: GET /repos/${{ env.GITHUB_REPO }}/releases/latest
env:
GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}

- name: "Get OUR lastest version for Alpine"
id: get_alpine_latest_version
uses: mikefarah/yq@master
with:
cmd: yq '${{ env.JSONPATH_ALPINE }}.[-1].pdepend' '.github/workflows/docker.yml'

- run: |
echo "PDEPEND_LATEST=$(echo '${{ fromJson(steps.pdepend_latest_release.outputs.data).tag_name }}' | cut -c 2- )" >> $GITHUB_ENV
echo "PDEPEND_VERSION_MAJOR=$(echo '${{ fromJson(steps.pdepend_latest_release.outputs.data).tag_name }}' | cut -d '.' -f1 | cut -c 2- )" >> $GITHUB_ENV
echo "PDEPEND_VERSION_MINOR=$(echo '${{ fromJson(steps.pdepend_latest_release.outputs.data).tag_name }}' | cut -d '.' -f1-2 | cut -c 2- )" >> $GITHUB_ENV
echo "PDEPEND_VERSION_ALPINE=${{ steps.get_alpine_latest_version.outputs.result }}" >> $GITHUB_ENV
- name: Download PHAR
if: ${{ env.PDEPEND_LATEST != env.PDEPEND_VERSION_ALPINE }}
run: |
export PDEPEND_PHAR_DOWNLOAD=$(yq "${{ fromJson(steps.pdepend_latest_release.outputs.data).assets | select(.name == \"pdepend.phar\") | select(.browser_download_url) }}")
curl -v -L "$PDEPEND_PHAR_DOWNLOAD" -o 'pdepend.tar'
echo "PDEPEND_PHAR_HASH=$( sha256sum pdepend.tar | cut -d ' ' -f1 )" >> $GITHUB_ENV
- run: |
echo Latest Version: $PDEPEND_LATEST
echo Major version: $PDEPEND_VERSION_MAJOR
echo Minor version: $PDEPEND_VERSION_MINOR
echo Our Alpine Version: $PDEPEND_VERSION_ALPINE
echo Download Hash PHAR: $PDEPEND_PHAR_HASH
- name: Handle version < 1
if: ${{ env.PDEPEND_VERSION_MAJOR == '0' }}
run: |
echo PDEPEND_VERSION_MAJOR="" >> $GITHUB_ENV
echo PDEPEND_VERSION_MINOR="" >> $GITHUB_ENV
- name: Fix Major versions Alpine
if: ${{ env.PDEPEND_LATEST != env.PDEPEND_VERSION_ALPINE }}
uses: mikefarah/yq@master
with:
cmd: |
yq -i 'with((${{ env.JSONPATH_ALPINE }}[] | select(.pdepend_major == "${{ env.PDEPEND_VERSION_MAJOR }}")); .pdepend_major = "")' .github/workflows/docker.yml
- name: Fix Minor versions Alpine
if: ${{ env.PDEPEND_LATEST != env.PDEPEND_VERSION_ALPINE }}
uses: mikefarah/yq@master
with:
cmd: |
yq -i 'with((${{ env.JSONPATH_ALPINE }}[] | select(.pdepend_minor == "${{ env.PDEPEND_VERSION_MINOR }}")); .pdepend_minor = "")' .github/workflows/docker.yml
- name: Fix Latest Alpine
if: ${{ env.PDEPEND_LATEST != env.PDEPEND_VERSION_ALPINE }}
uses: mikefarah/yq@master
with:
cmd: |
yq -i 'with((${{ env.JSONPATH_ALPINE }}[] | select(.latest == true)); .latest = false)' .github/workflows/docker.yml
- name: "Add new Version for Alpine"
if: ${{ env.PDEPEND_LATEST != env.PDEPEND_VERSION_ALPINE }}
uses: mikefarah/yq@master
with:
cmd: |
yq -i '${{ env.JSONPATH_ALPINE }} = ${{ env.JSONPATH_ALPINE }} + {"pdepend": "${{ env.PDEPEND_LATEST }}", "pdepend_major": "${{ env.PDEPEND_VERSION_MAJOR }}", "pdepend_minor": "${{ env.PDEPEND_VERSION_MINOR }}", "sha256": "${{ env.PDEPEND_PHAR_HASH }}", "latest": true}' .github/workflows/docker.yml
- name: Create Pull Request
if: ${{ env.PDEPEND_LATEST != env.PDEPEND_VERSION_ALPINE || env.PDEPEND_LATEST != env.PDEPEND_VERSION_WINDOWS }}
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
git switch -c "update-${{ env.PDEPEND_LATEST }}"
git config --global user.name "github-actions"
git config --global user.email \
"41898282+github-actions[bot]@users.noreply.github.com"
git add .github/workflows/docker.yml
git commit --message "Version ${{ env.PDEPEND_LATEST }}"
git push --set-upstream origin "update-${{ env.PDEPEND_LATEST }}"
gh pr create --title "Version ${{ env.PDEPEND_LATEST }}" --body ''
4 changes: 1 addition & 3 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,15 @@ on:
- "README.md"
- "LICENSE.md"
pull_request:
schedule:
- cron: "0 7 * * 1-4"

jobs:
docker-image-alpine:
strategy:
matrix:
version:
- pdepend: "2.15.1"
pdepend_minor: "2.15"
pdepend_major: "2"
pdepend_minor: "2.15"
sha256: "d14701de2c16ba2fdec40b6c73f8c6ba03a60c93b619493ce80a23d161a129d6"
latest: true

Expand Down

0 comments on commit ab461c0

Please sign in to comment.