forked from folke/tokyonight.nvim
-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (144 loc) · 4.64 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: 🔎 Continuous Integration
on:
push:
pull_request:
workflow_dispatch:
inputs:
os:
description: 'Operating system'
required: true
default: 'ubuntu-latest'
nvim:
description: 'Neovim version'
required: true
default: 'nightly'
branch:
description: 'Branch to test'
required: true
default: 'main'
jobs:
tests:
name: 🥼 Tests
if: always()
strategy:
matrix:
# os: [ubuntu-latest, windows-latest]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: 🔔 Checkout
uses: actions/checkout@v4
- name: 📦 Setup Neovim
shell: bash
run: |
mkdir -p /tmp/nvim
wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage -O /tmp/nvim/nvim.appimage
cd /tmp/nvim
chmod a+x ./nvim.appimage
./nvim.appimage --appimage-extract
echo "/tmp/nvim/squashfs-root/usr/bin/" >> $GITHUB_PATH
- name: 🧪 Test
run: |
nvim --version
[ ! -d tests ] && exit 0
nvim --headless -u tests/init.lua -c "PlenaryBustedDirectory tests/ {minimal_init = 'tests/init.lua', sequential = true}"
- name: 🌵 Cache
id: cache_logs
uses: actions/cache@v2
with:
path: |
~/.cache/nvim
~/.local/share/nvim/site/pack/packer
key: ${{ runner.os }}-dullahan.nvim-${{ hashFiles('**/init.lua') }}
restore-keys: |
${{ runner.os }}-dullahan.nvim-${{ hashFiles('**/init.lua') }}
- name: 🎅 Upload artifact
if: steps.cache_logs.outputs.cache-hit == 'true'
uses: actions/upload-artifact@v2
with:
name: logs
path: |
~/.cache/nvim
~/.local/share/nvim/site/pack/packer
docs:
name: 📖 Documentation
runs-on: ubuntu-latest
needs: tests
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- name: 🔔 Checkout
uses: actions/checkout@v4
- name: 😺 Git pull
run: git pull
- name: 🐴 Panvimdoc
uses: kdheepak/panvimdoc@main
with:
vimdoc: dullahan.nvim
version: 'Neovim >= 0.8.0'
demojify: true
treesitter: true
- name: 😻 Push changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'chore(build): auto-generate vimdoc'
commit_user_name: 'github-actions[bot]'
commit_user_email: 'github-actions[bot]@users.noreply.github.com'
commit_author: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'
release:
name: 🚀 Release
if: ${{ github.ref == 'refs/heads/main' }}
needs:
- docs
- tests
runs-on: ubuntu-latest
steps:
- name: 🔥 Automated releases
uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: simple
package-name: dullahan.nvim
- name: 🔔 Checkout
uses: actions/checkout@v4
- name: 🏷️ Tag stable versions
if: ${{ steps.release.outputs.release_created }}
run: |
git config user.name github-actions[bot]
git config user.email github-actions[bot]@users.noreply.github.com
git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/google-github-actions/release-please-action.git"
git tag -d stable || true
git push origin :stable || true
git tag -a stable -m "Last Stable Release"
git push origin stable
handler:
name: 👋 Handler
needs:
- release
if: failure()
runs-on: ubuntu-latest
steps:
- name: 🔔 Checkout
uses: actions/checkout@v4
- name: 🎁 Download artifact
id: download_artifact
uses: actions/download-artifact@v2
with:
name: logs
- name: 📮 Send issue
uses: JasonEtco/create-an-issue@v2
id: send_issue
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LOGS: ${{ steps.download_artifact.outputs.artifact_paths }}
NOTES: ${{ job.status }}
JOB: ${{ github.job }}
BUILD: ${{ github.run_number }}
COMMIT: ${{ github.sha }}
with:
filename: .github/ISSUE_TEMPLATE/failure_report.md
assignees: github-actions[bot], ${{ github.actor }}
update_existing: true
- name: 📤 Output
run: |
echo "🐞 Issue created at ${{ steps.send_issue.outputs.url }}"
echo "🔢 Issue number is ${{ steps.send_issue.outputs.number }}"