初心者の質問で申し訳ありません。
私はGitHubとDevOps環境に初めて触れ、何かを自動化する任務を務めました。 GitHubはまだメンテナンス中で、今後新しいバージョンを受け取る予定のプロジェクトを見つけました。
私は特定の環境に合わせてGitHubから最新のexeバージョンをダウンロードする必要があるパイプラインを構築したいと思います。
現在、/releases/vX.yz(ここでX、y、およびzはリリースバージョン)の下のgitリポジトリに、次の名前の複数のパッケージを含むリリースがあります。
- package.v1.2.3.linux-amd64.tar.gz(https://github.com/some-example-repo/download/v1.2.3/package.v1.2.3-linux-arm64.tar.gz)
- package.v1.2.3.linux-arm64.tar.gz(https://github.com/some-example-repo/download/v1.2.3/package.v1.2.3-linux-arm64.tar.gz)
- package.v1.2.3.windows-amd64.zip(https://github.com/some-example-repo/download/v1.2.3/package.v1.2.3-windows-amd64.zip)
など。
バージョンが時間とともに変化することを考慮すると、どのパターンを使用して特定のパッケージを入手する方法がありますか?
幸いなことに、リンクは次のとおりです。https://github.com/some-example-repo/releases/latest最新のリリース版にリダイレクトされるので、次のような気がします。
wget https://github.com/some-example-repo/download/*????/package.V???*-linux-arm64.tar.gz
考えてみると、これを質問で投稿したので、wgetがURLを自動完成することはできないようです。
ベストアンサー1
常に最新バージョンをダウンロードしたい場合は、以下を使用する必要があります。この目的のためのGitHub API:
curl https://api.github.com/repos/$USER/$REPO/releases/latest
これにより、すべての成果物を含む最新バージョンを説明するJSONドキュメントが返されますjq
。例えば
| jq -r '.assets[].browser_download_url'
すべてのリソースダウンロードURLを抽出します。
ただし、実際には変更が変更されるとCIが破損する可能性があるため、常に最新バージョンをダウンロードするのは一般的に悪い考えです。特定のバージョンをダウンロードし、必要に応じて手動でアップグレードする必要があります(新しいバージョンを自動的にテストし、適切なPRを提案することもできます)。