いけむランド

はてダからやってきました

SCALLYWAG=deploy によるデプロイ

完全に Cygwin Package Maintainer にしか必要がない情報ですがまとめておきます。

以前、公式パッケージの配布の方法をまとめましたが、その中で実際に配布するバイナリはメンテナの環境でビルドしたものをアップロードする旨を書きました。

fd0.hatenablog.jp

この場合、悪意を持ったバイナリを混入させることができるんじゃないかと思っていました。

それを考慮したためか不明ですが、現在は CI でビルドしたバイナリをそのまま公式パッケージとしてアップロードする仕組みが用意されているようです。

cygwin.com

ここに記載してある SCALLYWAG=deploy.cygport に書いておくと、CI が成功した場合のみ artifact からバイナリパッケージを抽出して、自動で公式サーバにアップロードされるようです。

cygwin.com

ちなみに指定するとビルドジョブのステータスは Deployed になります。

cygwin.com

また、この方法でデプロイすると、パッケージに test タグがついたままであるため、ユーザが明示的にテスト版をインストールする設定にしないと、インストーラーで表示されません。そのため、問題ないと思われるものについては test タグを外す必要があります。

test タグを外すには ssh で untest コマンドを実行します。

cygwin.com

Package maintainers can promote their own packages from test to current using: ssh cygwin@cygwin.com untest package-version-release

実際に実行すると以下のようになります。

$ ssh cygwin@cygwin.com untest tty-clock-2.3-1
untest: Removed test: label from x86/release/tty-clock/tty-clock-2.3-1-src.hint
untest: Removed test: label from x86/release/tty-clock/tty-clock-2.3-1.hint
untest: Removed test: label from x86/release/tty-clock/tty-clock-debuginfo/tty-clock-debuginfo-2.3-1.hint
untest: Removed test: label from x86_64/release/tty-clock/tty-clock-2.3-1-src.hint
untest: Removed test: label from x86_64/release/tty-clock/tty-clock-2.3-1.hint
untest: Removed test: label from x86_64/release/tty-clock/tty-clock-debuginfo/tty-clock-debuginfo-2.3-1.hint
untest: 6 out of 6 hints for 'tty-clock' version '2.3-1' modified

これでミラーリングが終われば、インストーラーで最寄りのサーバからインストールできるようになります。