diff --git a/.github/workflows/diff-check.yml b/.github/workflows/diff-check.yml new file mode 100644 index 00000000..9ad900de --- /dev/null +++ b/.github/workflows/diff-check.yml @@ -0,0 +1,45 @@ +name: Diff check and open pull request + +on: + push: + branches: + - 'master' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Setup + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Generate codes + run: python generate-code.py + - name: Install bump + run: pip install bump + - name: Mark if diff exists + run: | + diff=$(git --no-pager diff --name-only) + echo "DIFF_IS_EMPTY=$([[ -z "$diff" ]] && echo 'true' || echo 'false')" >> $GITHUB_ENV + echo "CURRENT_DATETIME=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV + + ## TODO: Enable merge change into master directly + - name: Open pull request if generated code is not same as current one + if: ${{ env.DIFF_IS_EMPTY != 'true' }} + run: | + git config user.name github-actions + git config user.email github-actions@github.com + git checkout -b update-diff-${{ env.CURRENT_DATETIME }} + bump -m -r linebot/__about__.py + python generate-code.py + git add . + git commit -m "Codes are generated by openapi" + git push origin update-diff-${{ env.CURRENT_DATETIME }} + gh pr create -B ${{ github.ref_name }} -t "Codes are generated by openapi" -b "" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}