Skip to content

Sync Neovim Release #119

Sync Neovim Release

Sync Neovim Release #119

Workflow file for this run

name: Sync Neovim Release
# 从https://gitlab.b-data.ch/neovim/neovim 下载 arm64 neovim
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # 每天定时运行一次,也可以根据需要修改
jobs:
download_and_release:
runs-on: ubuntu-latest
steps:
- name: Set up Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Get latest release tag from GitLab
id: get_release_tag
run: |
releases_tag=$(curl -s "https://gitlab.b-data.ch/api/v4/projects/362/releases" | grep -Eo '"tag_name":"v[0-9]+\.[0-9]+\.[0-9]+"' | head -n 1 | awk -F'"' '{print $4}')
echo "releases_tag=$releases_tag" >> $GITHUB_ENV
# 检测已有同tag则跳过
- name: Check if tag already exists in GitHub
id: check_tag
run: |
tag_exists=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/tags" | jq -r '.[].name' | grep -w "${{ env.releases_tag }}" || true)
if [ -n "$tag_exists" ]; then
echo "Tag ${{ env.releases_tag }} already exists. Skipping release creation."
echo "skip_release=true" >> $GITHUB_ENV
else
echo "skip_release=false" >> $GITHUB_ENV
fi
- name: Download the latest Neovim release
if: env.skip_release != 'true'
run: |
curl -L "https://gitlab.b-data.ch/neovim/neovim/-/releases/$releases_tag/downloads/builds/nvim-linux-arm64.tar.gz" -o nvim-linux-arm64.tar.gz
- name: Create GitHub Release
id: create_release
if: env.skip_release != 'true'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: "${{ env.releases_tag }}"
release_name: "Neovim ${{ env.releases_tag }}"
draft: false
prerelease: false
- name: Upload Asset to Release
if: env.skip_release != 'true'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./nvim-linux-arm64.tar.gz
asset_name: nvim-linux-arm64.tar.gz
asset_content_type: application/gzip