# Based on https://github.com/best-of-lists/best-of-update-action/blob/v0.7.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 14 * * 4" # Every thursday at 2pm 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/action-create-branch@v2.0.1 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 uses: best-of-lists/best-of-update-action@v0.7.5 with: libraries_key: ${{ secrets.LIBRARIES_KEY }} github_key: ${{ secrets.GITHUB_TOKEN }} - 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: 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 Merge pull request below and Confirm merge. 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