Git Archiveと.gitattributesを使用してカスタム.zipファイルを作成する
(画像は削除しました)
問題点
WordPressプラグインを開発し、レビューの提出準備ができました。フォルダの.zipファイルを作成する必要があるんです。そのため、フォルダを右クリックして「圧縮」を選択すればいいでしょうか?
はい、それでも動きます。ただ、そのフォルダには提出したくないものが山ほどあります。.git
、.github
、/bin
フォルダなど、プラグインに不要なものがたくさんあります。現段階でのディレクトリはこんな感じです:
.github
/bin
/core
/languages
/node_modules
/scripts
/tests
/vendor
.gitignore
.composer.json
plugin.php
解決策 その1 - Git Archive
Googleの力を借りて再び検索し、なかなか良い答えが見つかりました。git archiveです。
マスターブランチにコミットされたすべてのファイルを取り、私のプラグインの.zipファイルを作成してくれます:
git archive --format zip --output \"plugin.zip\" master -0
こうして私の'plugin.zip'ファイルは以下のようになりました:
.github
/bin
/core
/languages
/scripts
/tests
.composer.json
my-plugin.php
解決策 その1.0.1 - .gitattributes
もう一つ問題があります。.zipファイルを見ると、.gitignoreファイルにあったものはすべて.zipから除外されていますが、/tests
フォルダや/bin
フォルダを提出するつもりはありません。そこで再びGoogleに向かい、答えはディレクトリのルートに.gitattributesファイルを作成することでした。
.gitignore export-ignore
.gitattributes export-ignore
.github export-ignore
bin export-ignore
tests export-ignore
composer.json export-ignore
composer.lock export-ignore
注記:ここでの2点に注意が必要です。1つ目は、git archive
コマンドを実行する前に、.gitattributesファイルをコミットする必要があること。そうしないと機能しません。2つ目は、フォルダ名の前に/
または./
を付けることは機能しないことです(たとえば./bin export-ignore
)。
最後に、git archive
コマンドを再実行し、ぴかぴかの状態になりました:
/core
/languages
/scripts
my-plugin.php
次のステップ
この作業をGitHubにプッシュしたときに自動的に行えるようにすると素晴らしいですね。GitHubアクションをセットアップして、いくつかのテストを実行した後で、リリースとしてzipファイルを作成することも想像できます。
もうひとつのこと...
覚えたくないものを覚えるのが面倒なので、アーカイブコマンドを.package.jsonに追加します。これでnpm run archive
を実行するだけで完了です。
{
"name": "...",
"version": "...",
"scripts": {
"archive": "git archive --format zip --output \"mandrill-mail.zip\" master -0"
}
}
```<br><br>こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。<br>[https://dev.to/markcummins/make-a-custom-zip-of-your-code-using-git-archive-gitattributes-3ngn](https://dev.to/markcummins/make-a-custom-zip-of-your-code-using-git-archive-gitattributes-3ngn)