Skip to content

update-best-of-list #721

update-best-of-list

update-best-of-list #721

---
# 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 20 * * *
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@v2
- 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/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
branch: ${{ env.BRANCH_PREFIX }}${{ env.VERSION }}
- uses: actions/checkout@v2
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
shell: bash
run: make setup-ci
env:
LIBRARIES_IO_KEY: ${{ secrets.LIBRARIES_KEY }}
GITHUB_API_KEY: ${{ secrets.GITHUB_TOKEN }}
- name: build-best-of-list
shell: bash
run: best-of generate -g ${{secrets.GITHUB_TOKEN}} -l ${{secrets.LIBRARIES_KEY}}
./projects.yaml
- 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: [email protected]
commit_message: 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
curl -fsSL https://github.com/github/hub/raw/master/script/get | bash -s 2.14.2
bin/hub pull-request -b ${{ env.DEFAULT_BRANCH }} -h ${{ env.BRANCH_PREFIX }}${{ env.VERSION }} --no-edit -m "Best-of update: ${{ env.VERSION }}" -m "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
rm bin/hub
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