Skip to content

chore(deps): update actions/checkout action to v4 (#58) #71

chore(deps): update actions/checkout action to v4 (#58)

chore(deps): update actions/checkout action to v4 (#58) #71

# Based on https://github.com/best-of-lists/best-of-update-action/blob/v0.8.5/workflows/update-best-of-list.yml
name: update-best-of-list
on:
workflow_dispatch:
inputs:
version:
description: "Version to use for this update"
required: false
schedule:
- cron: "0 18 * * 4" # Every thursday at 6pm
push:
branches:
- main
env:
BRANCH_PREFIX: "update/"
DEFAULT_BRANCH: "main"
jobs:
update-best-of-list:
runs-on: ubuntu-latest
steps:
- if: ${{ github.event.inputs != null && github.event.inputs.version != null }}
name: set-version-from-input
run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV
- if: ${{ ! (env.VERSION != null && env.VERSION != '') }}
name: set-version-via-date
run: echo "VERSION=$(date '+%Y.%m.%d')" >> $GITHUB_ENV
- uses: actions/checkout@v4
- name: check-version-tag
shell: bash
run: |
git fetch --tags --force
git show-ref --tags --verify --quiet -- "refs/tags/${{ env.VERSION }}" && echo "VERSION=$(date '+%Y.%m.%d-%H.%M')" >> $GITHUB_ENV || exit 0
- name: create-update-branch
uses: peterjgrainger/action-create-branch@v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
branch: "${{ env.BRANCH_PREFIX }}${{ env.VERSION }}"
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ env.BRANCH_PREFIX }}${{ env.VERSION }}
token: ${{ secrets.GITHUB_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: update-best-of-list
uses: best-of-lists/best-of-update-action@v0.8.5
with:
libraries_key: ${{ secrets.LIBRARIES_KEY }}
github_key: ${{ secrets.GITHUB_TOKEN }}
- name: run-pre-commit
shell: bash
run: |
# Stops script execution if a command has an error
set -e
pipx run pre-commit run --all-files || true
- name: push-update
uses: stefanzweifel/git-auto-commit-action@v4
with:
branch: ${{ env.BRANCH_PREFIX }}${{ env.VERSION }}
commit_user_name: best-of update
commit_user_email: actions@github.com
commit_message: "docs: update best-of list for version ${{ env.VERSION }}"
tagging_message: ${{ env.VERSION }}
skip_dirty_check: true
commit_options: "--allow-empty"
- name: create-pull-request
shell: bash
run: |
# Stops script execution if a command has an error
set -e
gh pr create -B ${{ env.DEFAULT_BRANCH }} -H ${{ env.BRANCH_PREFIX }}${{ env.VERSION }} --title "docs: best-of update ${{ env.VERSION }}" --body "To finish this update: Select <code>Merge pull request</code> below and <code>Confirm merge</code>. Also, make sure to publish the created draft release in the [releases section](../releases) as well." || true
# merge pull request
gh pr merge ${{ env.BRANCH_PREFIX }}${{ env.VERSION }} --squash --auto || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}
release_name: "Update: ${{ env.VERSION }}"
body_path: "latest-changes.md"
# draft: true
# prerelease: false