aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/vim_patches.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/vim_patches.yml')
-rw-r--r--.github/workflows/vim_patches.yml55
1 files changed, 55 insertions, 0 deletions
diff --git a/.github/workflows/vim_patches.yml b/.github/workflows/vim_patches.yml
new file mode 100644
index 0000000000..711ddae815
--- /dev/null
+++ b/.github/workflows/vim_patches.yml
@@ -0,0 +1,55 @@
+name: vim-patches
+on:
+ schedule:
+ - cron: '3 3 * * *'
+ workflow_dispatch:
+
+jobs:
+ update-vim-patches:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ env:
+ VIM_SOURCE_DIR: ${{ github.workspace }}/vim-src
+ VERSION_BRANCH: marvim/ci-version-update
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - uses: actions/checkout@v4
+ with:
+ repository: vim/vim
+ path: ${{ env.VIM_SOURCE_DIR }}
+ fetch-depth: 0
+
+ - run: sudo apt-get install libfuse2
+
+ - run: |
+ gh release download -R neovim/neovim -p nvim.appimage
+ chmod a+x nvim.appimage
+ mkdir -p $HOME/.local/bin
+ mv nvim.appimage $HOME/.local/bin/nvim
+ printf '%s\n' "$HOME/.local/bin" >> $GITHUB_PATH
+
+ - name: Set up git config
+ run: |
+ git config --global user.name 'marvim'
+ git config --global user.email 'marvim@users.noreply.github.com'
+
+ - name: Update src/version.c
+ id: update-version
+ run: |
+ git checkout -b ${VERSION_BRANCH}
+ nvim -V1 -es -i NONE +'luafile scripts/vimpatch.lua' +q
+ printf 'NEW_PATCHES=%s\n' $([ -z "$(git diff)" ]; echo $?) >> $GITHUB_OUTPUT
+
+ - name: Automatic PR
+ if: ${{ steps.update-version.outputs.NEW_PATCHES != 0 }}
+ run: |
+ git add -u
+ git commit -m 'version.c: update [skip ci]'
+ git push --force https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY} ${VERSION_BRANCH}
+ gh pr create --draft --fill --label vim-patch --base ${GITHUB_REF#refs/heads/} --head ${VERSION_BRANCH} || true