-
Notifications
You must be signed in to change notification settings - Fork 722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Download artifacts of latest build #21
Comments
I would like to know how to get link url too. ref #2 (comment) |
https://github.com/actions/download-artifact EDIT: Uhh... Sorry, it doesn't work across workflows: #2 (comment) |
I'd like to link directly to the downloads but that depends on actions/upload-artifact#21 Closes facebook#755 Closes facebook#746 Closes facebook#741 Closes facebook#683
This is more of an issue on the No rough ETA but this is something that we really really want to do since it will help enable more complete CI/CD experiences. |
Also see related discussions like #27 and #50. We would like a direct URL for our nightly builds (like the format proposed in the issue description). We had previously used Travis CI and AppVeyor CI, where none of this was any issue. With GitHub Actions it's a massive headache / various issues. I had made a quick and dirty tool to redirect users to the latest artifact URL using the new API. However, now the actions API and artifact URLs only work for authenticated users: JayFoxRox/GitHub-artifact-URL#4 so the tool doesn't even work for our use-case anymore (which is frustrating, as we waited for a solution for weeks, and had manually updated the download URL on our website for now). I have created #51 for the permission issue. |
@JayFoxRox, you might find eine/tip useful or, at least, inspiring. As a matter of fact, I wrote that action in JavaScript several months ago. Artifacts were not supported, so my strategy was to use a single pre-release and update it. It didn't work as expected, because recreating the release would spam all watchers. Then, I rewrote it as a Docker Action in Python. The pre-release is kept, but assets are updated/overwritten, hence notifications are not triggered. The usage of tip is similar to this action. Precisely, I accumulate all the artifacts with upload-artifact and I use an additional job to update the "nightly" release: nightly:
needs: [ lin, win ]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
with:
path: ./
- uses: eine/tip@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: 'nightly'
files: |
./artifact/* tip also force-pushes the tag, for it to point to the commit that corresponds to the updated artifacts/assets. The advantage compared to using GitHub-artifact-URL, is that the pre-relase provides a nice and consistent URL for users to download assets, and no authentication is required: |
Thank you so much! |
I have created this action that creates a comment in pull request and/or associated issues with the link to all / subset of artifacts |
The upload workflow within github actions leaves a lot to be desired. There were many initial assumptions with GITHUB_WORKSPACE, paths from test repos, etc. that were originally left here. These more or less have been vetted now and this is the best result I have found to date for scale-network. Additionally, I am watching a few upstream stories in the upload actions repo just to see if it improves things for us in the near term: - actions/upload-artifact#109 - actions/upload-artifact#21
The upload workflow within github actions leaves a lot to be desired. There were many initial assumptions with GITHUB_WORKSPACE, paths from test repos, etc. that were originally left here. These more or less have been vetted now and this is the best result I have found to date for scale-network. Additionally, I am watching a few upstream stories in the upload actions repo just to see if it improves things for us in the near term: - actions/upload-artifact#109 - actions/upload-artifact#21
The upload workflow within github actions leaves a lot to be desired. There were many initial assumptions with GITHUB_WORKSPACE, paths from test repos, etc. that were originally left here. These more or less have been vetted now and this is the best result I have found to date for scale-network. Additionally, I am watching a few upstream stories in the upload actions repo just to see if it improves things for us in the near term: - actions/upload-artifact#109 - actions/upload-artifact#21
Solution similar to @eine See: #51 (comment) |
For those looking to grab this in bash, here's a short script for grabbing by workflow run and artifact name: https://gist.github.com/Willsr71/e4884be88f98b4c298692975c0ec8edb |
The same done in two lines of gh, which is available by default in GitHub Actions. - name: 'Download latest successful build artifact'
run: |
gh_last_success_run_id=$(gh run list -w $WORKFLOW --json conclusion,headBranch,databaseId --jq 'first(.[] | select(.conclusion | contains("success"))) | .databaseId')
[ -z "$gh_last_success_run_id" ] && echo "No successful run found" && exit 1 || true
gh run download $gh_last_success_run_id -n $ARTIFACT_NAME -D $OUTPUT_DIR
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WORKFLOW: .github/workflows/build.yaml
ARTIFACT_NAME: application
OUTPUT_DIR: app/build Where the variables are as follows:
Make sure your job has at least a read access to the actions context: jobs:
build:
runs-on: ubuntu-latest
permissions:
actions: 'read' |
Hello, I would like to enable users to download latest commits from my GitHub pages page. Something like @davidmoremad mentioned |
I'm working with two workflows in different platforms (A and B) and the workflow B needs an artifact of the workflow A. Also, I'm trying to avoid external services as S3 in order to make it simple.
Is there a way to get a link to the artifacts generated in the last build (latestbuild) or in the last passed build (lastsuccessfulbuild)?
Maybe something like this:
https://github.com/{account}/{repo}/workflows/{workflowName}/builds/latest/artifacts/file.zip
The text was updated successfully, but these errors were encountered: