dry-rb/dry-auto_inject

View on GitHub
.github/workflows/sync_configs.yml

Summary

Maintainability
Test Coverage
# this file is managed by dry-rb/devtools project

name: sync

on:
  repository_dispatch:
  push:
    branches:
      - "master"

jobs:
  main:
    runs-on: ubuntu-latest
    if: (github.event_name == 'repository_dispatch' && github.event.action == 'sync_configs') || github.event_name != 'repository_dispatch'
    env:
      GITHUB_LOGIN: dry-bot
      GITHUB_TOKEN: ${{ secrets.GH_PAT }}
    steps:
      - name: Checkout ${{github.repository}}
        uses: actions/checkout@v1
      - name: Checkout devtools
        uses: actions/checkout@v2
        with:
          repository: dry-rb/devtools
          path: tmp/devtools
      - name: Setup git user
        run: |
          git config --local user.email "dry-bot@dry-rb.org"
          git config --local user.name "dry-bot"
      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.6
      - name: Install dependencies
        run: gem install ossy --no-document
      - name: Compile file templates
        run: tmp/devtools/bin/compile-templates
      - name: Update workflow files from devtools
        run: tmp/devtools/bin/sync-workflows
      - name: Update configuration files from devtools
        run: tmp/devtools/bin/sync-shared-files
      - name: Update changelog.yml from commit
        run: tmp/devtools/bin/update-changelog-from-commit $GITHUB_SHA
      - name: Compile CHANGELOG.md
        run: tmp/devtools/bin/compile-changelog
      - name: Commit
        run: |
          git add -A
          git commit -m "[devtools] sync" || echo "nothing to commit"
      - name: Push changes
        run: |
          git pull --rebase origin master
          git push https://dry-bot:${{secrets.GH_PAT}}@github.com/${{github.repository}}.git HEAD:master