Skip to content

Commit 7e2d38d

Browse files
authored
Merge pull request #179 from vim-jp/create-releasae-using-gha-175
Add a workflow for creating release
2 parents 3d2a2d9 + 757d3cb commit 7e2d38d

2 files changed

Lines changed: 103 additions & 40 deletions

File tree

.github/workflows/release.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Create a release
2+
3+
on:
4+
push:
5+
branches: [ '**' ]
6+
tags:
7+
- '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
8+
- '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-alpha.*'
9+
- '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-beta.*'
10+
11+
jobs:
12+
release:
13+
14+
runs-on: ubuntu-24.04
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v6
19+
20+
- name: Install packages
21+
run: |
22+
sudo apt install gettext vim
23+
24+
- name: Create an archive
25+
run: |
26+
make release ARCHIVE=vim-lang-ja-${{ github.ref_name }}
27+
28+
- name: Upload the archive
29+
uses: actions/upload-artifact@v6
30+
with:
31+
name: vim-lang-ja
32+
path:
33+
vim-lang-ja-*.tar.xz
34+
35+
# リリース(draft)を作成しファイルを添付する
36+
- name: Create a release
37+
if: startsWith(github.ref, 'refs/tags/')
38+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
39+
with:
40+
draft: true
41+
prerelease: ${{ contains(github.ref_name, '-alpha.') || contains(github.ref_name, '-beta.') }}
42+
files: |
43+
vim-lang-ja-*.tar.xz
44+
fail_on_unmatched_files: true
45+
generate_release_notes: true
46+
append_body: true

README.md

Lines changed: 57 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ nsis/lang |Windows用インストーラーの翻訳フ
5050

5151
Windows 上で vim.pot を生成するには、Cygwin や MSYS2 等の Linux 的な環境を
5252
使うこと。(MSVC 用の Makefile も用意されているが、ソースファイルの読み込み
53-
順序が異なるために余計な差分が出てしまう。)
53+
順序が異なるために余計な差分が出てしまう。)
5454
また、古いソースを使って Win32 向けにビルドしたことで `src/if_perl.c`
5555
残っているならば、vim.pot 生成前に削除しておくこと。(余計な差分が出るのを
5656
防ぐため。)
@@ -190,6 +190,11 @@ nsis/lang |Windows用インストーラーの翻訳フ
190190

191191
## リリース手順
192192

193+
リリースにはリリースアーカイブの作成と、Vimへの反映(PR作成)がある。
194+
どちらも GitHub の master ブランチへ反映させるところまでは共通の手順となる。
195+
196+
### 共通手順: master ブランチを更新する
197+
193198
1. 各リソースが最新に近いことを確認する
194199

195200
TODO: 将来、より具体的で自動化された手段を提供したい
@@ -205,27 +210,51 @@ nsis/lang |Windows用インストーラーの翻訳フ
205210
[CI][#ci] で実行しているのでローカルでやる意味は無いが、テストをパスするこ
206211
とを確認する。
207212

208-
4. リリース用アーカイブを作成する
213+
4. 変更を master ブランチへ反映させる
214+
215+
必要に応じてPRしてマージ、もしくは直接 push して master ブランチをリリース
216+
できる状態にする。
217+
218+
### リリースアーカイブの作成
219+
220+
リリースアーカイブの作成はタグ付けにより駆動する GitHub Actions ワークフローを
221+
用いる。
222+
223+
1. master ブランチ上でタグ(`YYYYMMDD`)を作成し、GitHub へ push する
224+
225+
```console
226+
$ git switch master
227+
228+
# 日付ベースのタグを打つ
229+
$ git tag -am '{リリースコメント}' 20260323
230+
231+
# タグを GitHub へpush
232+
$ git push origin 2060323
233+
```
234+
235+
有効なタグのフォーマットは以下のいずれか。
236+
下2つについてはあとのステップで作成されるリリースが、
237+
自動的に pre-release としてマークされる。
209238

210-
$ make release-today
239+
- `^\d\d\d\d\d\d\d\d$`
240+
- `^\d\d\d\d\d\d\d\d-alpha\..*$`
241+
- `^\d\d\d\d\d\d\d\d-beta\..*$`
211242

212-
`vim-lang-ja-20160131.tar.xz` といったアーカイブファイルができる。
213-
`20160131` の部分は実行した日付に置き換わる。
243+
2. GitHub Actions の [Releaseワークフロー][#release-workflow] が終わるのを待つ
214244

215-
前回のリリースから、`*.po` 以外のファイルが更新されていない場合は、po
216-
のみのリリース用アーカイブを作成する。(Bram の要請。)
245+
3. ドラフト状態のリリースを、適宜編集し公開(ドラフト解除)する
217246

218-
$ cd src/po/
219-
$ make release-today
247+
リリースアーカイブは前ステップが添付してくれている。
220248

221-
`vim-lang-ja-po-YYYYMMDD.tar.xz` といったアーカイブファイルができる。
222-
`YYYYMMDD` の部分は実行した日付に置き換わる。
249+
### Vimへの反映
223250

224-
5. Vim のソースディレクトリを更新する
251+
事前に前述のリリースアーカイブを作成することを推奨するが、必須ではない。
225252

226-
GitHub に PR を出す場合は、以下のコマンドを実行して Vim のソースディレクト
227-
リを更新する。
228-
(`VIM_SRC_DIR` で Vim のソースディレクトリを指定)
253+
1. Vim のソースディレクトリを更新する
254+
255+
GitHub に PR を出す場合は、以下のコマンドを実行して lang-ja のファイルを
256+
Vim のソースディレクトリへコピーし更新する。
257+
`VIM_SRC_DIR` で Vim のソースディレクトリの位置を指定する。
229258

230259
$ make update-src-dir VIM_SRC_DIR=../vim
231260

@@ -265,35 +294,23 @@ nsis/lang |Windows用インストーラーの翻訳フ
265294
+-- ja.sjis.po
266295
```
267296

268-
6. タグを打ち、GitHub Releases を更新する
269-
270-
タグの形式は YYYYMMDD とする。例:
271-
272-
$ git tag 20181116 -m 'Catch up with 8.1.0519'
273-
$ git push origin master --tags
274-
275-
タグが push できたら、GitHub Releases に新しいリリースを作り、アーカイブ
276-
をアップロードする。
277-
278-
7. Bram に対してリリースする
297+
2. vim/vim に対してリリースする
279298

280299
[GitHub][#github] に PR を出す。
300+
このとき Sign-off (`git commit -s`) を忘れずに。
301+
PR のテンプレートは以下の通りだが、必要に応じて適宜アレンジして良い。
281302

282-
あるいはこのアーカイブファイルを Bram と vim-dev へ更新依頼とともに送信す
283-
る。
284-
以下、文面の一例:
285-
286-
Hi Bram and the list,
287-
288-
I'd like to update Japanese translations.
289-
Could you merge the contents from the attached file into Vim?
290-
291-
The same file is also available at the vim-jp/lang-ja repository:
292-
https://github.com/vim-jp/lang-ja/releases/tag/20181116
303+
```
304+
I'd like to updated Japanese translations for the Vim. The content
305+
contained in this PR was created collaboratively by multiple peoples in
306+
the vim-jp/lang-ja project, and I, {あなたのなまえ}, am submitting it as
307+
the project representative.
293308

294-
Thanks,
295-
(ここにあなたの名前。`Takata`とか)
309+
The same file is also available at the vim-jp/lang-ja repository:
310+
https://github.com/vim-jp/lang-ja/releases/tag/{最新のタグ}
311+
```
296312

313+
サンプル: [Vim 9.2リリースに伴う翻訳の更新PR](https://github.com/vim/vim/pull/19215)
297314

298-
[#ci]:https://github.com/vim-jp/lang-ja/actions
315+
[#ci]:https://github.com/vim-jp/lang-ja/actions/workflows/test.yml
299316
[#github]:https://github.com/vim/vim

0 commit comments

Comments
 (0)