web-dev-qa-db-ja.com

lastSuccessfulBuildでJenkinsによって作成されたアーティファクトにURLを介してアクセスするにはどうすればよいですか?

Jenkinsパイプラインを使用してAndroidアプリケーションを構築しています。

ビルドが正常に完了すると、.apkファイルが作成されます。

QAチームのメンバーがこのファイルをダウンロードしてアプリケーションをテストしてからGoogleストアにアップロードできるようにしたいので、これらのユーザー(Jenkinsサーバーにアクセスできる)が上のURLを介してアーティファクトにアクセスできるようにします。示されているようにJenkinsサーバー このSO質問 ですが、何らかの理由で、アーティファクトのダウンロードに使用しているURLで404エラーが発生し続けます。

これらは私がアクセスしようとしているが役に立たないリンクです:

https://company-ci-server.company.net/job/Itai_repos/job/Product-Android/job/develop/lastSuccessfulBuild/build/outputs/apk/Company-production-release.apk

https://company-ci-server.company.net/job/Itai_repos/job/Product-Android/job/develop/lastSuccessfulBuild/artifact/product-production-release.apk

ジョブはマルチブランチとして構成されています。つまり、JenkinsはGitHubでプロジェクトを監視し、すべてのブランチにインデックスを付け、コミットが発生するたびにジョブが開始されます...これが、疑問に思った場合に備えてリンクが非常に長い理由です...

だから私は何が間違っているのですか? URLを介してアーティファクトにアクセスできないのはなぜですか?

8
Itai Ganot

パイプラインを自分で作成していて、GUIを使用してジョブを構成していないため、誰かが興味を持っている場合は、パイプラインの実際のアーカイブの一部が欠落しています。関連する欠落しているコードは次のとおりです。

step([$class: 'ArtifactArchiver', artifacts: '**/build/outputs/apk/*.apk', fingerprint: false])

このステップは、Jenkinsに指定されたパスでapkファイルを探すように指示します。次に、Jenkinsがapkを公開し、URLからアクセスできます。

https://ci-server.company.net/job/Itai_repos/job/Products-Android/job/develop/<BUILD_NUMBER>/artifact/

ありがとう

9
Itai Ganot

ビルドプロセスのビルド後のステップとして、「アーティファクトのアーカイブ」タスクを追加します。そして、アクセス可能にするファイルを指定します。

プロジェクトダッシュボードページに、「最後に成功したアーティファクト」へのリンクが表示されます

編集:設定の一部が追加されました:

<hudson.tasks.ArtifactArchiver>
    <artifacts>
       bin\file1Setup.exe, bin\file2Setup.exe
    </artifacts>
    <allowEmptyArchive>false</allowEmptyArchive>
    <onlyIfSuccessful>false</onlyIfSuccessful>
    <fingerprint>false</fingerprint>
    <defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>
1
ReneA