Skip to content
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

Uploading a single file #3

Closed
lannonbr opened this issue Aug 13, 2019 · 55 comments
Closed

Uploading a single file #3

lannonbr opened this issue Aug 13, 2019 · 55 comments
Assignees
Labels
v2-preview Available or fixed in the v2-preview
Milestone

Comments

@lannonbr
Copy link

Say I wish to upload a screenshot made from puppeteer, can it be possible to upload just the image generated rather than a zip file only containing that image.

@TingluoHuang
Copy link
Member

you can't since we use the artifact name as a folder to hold all uploaded files.

@os6sense
Copy link

@TingluoHuang I think that counts as a feature request :)

@TingluoHuang
Copy link
Member

@os6sense agreed, the UI could have some pop-up dialog to allow you download individual file within your artifact.

@eine
Copy link

eine commented Aug 23, 2019

IMHO, this action could/should:

For example:

  with:
    title: my-artifacts
      - files: [ path/to/artifact.tar.gz ]
      - name: "Packages"
        files: [ path/to/rpms/*.rpm,  path/to/debs/*.deb ]
      - name: "Docs"
        files: [ "README.md", path/to/docs, !path/to/docs/tmp ]

would create:

  • my-artifacts:
    • artifact.tar.gz
    • Packages:
      • package_x86_64.rpm
      • package_aarch64.rpm
      • package_x86_64.deb
      • package_aarch64.deb
    • Docs
      • README.md
      • USE_GUIDE.md
      • CHANGELOG.md

Ideally, the GUI would allow to download each file separately OR a tarball of each of the sections ('Packages' and/or 'Docs', in these examples), as suggested by @TingluoHuang.

EDIT

Related to #5, each of the files or sections should also have a 'remove' button, only visible to maintainers.

Ideally, it would be possible to reorganize the content of the 'artifacts folder'. I.e., move items from a section to another.

@Stanzilla
Copy link

Yup, would love to be able to upload files instead. my build process already ends with a zip file and currently this action would just zip the zip.

@eine
Copy link

eine commented Aug 30, 2019

Yup, would love to be able to upload files instead. my build process already ends with a zip file and currently this action would just zip the zip.

This is worse with any non-zip package/tarball. For zips I extract them, so they are compressed again. However, for tar.gz, you get double compression.

This was referenced Sep 5, 2019
@Stanzilla
Copy link

@damccorm any plans for that?

This was referenced Sep 10, 2019
@eine
Copy link

eine commented Sep 13, 2019

@damccorm any plans for that?

/cc @madhurig

@mooreatv
Copy link

I would also love to be able to specify an already made zip or other single file instead of getting zip containing a zip

@Jeff-Tian
Copy link

Bump

@madhurig madhurig added the enhancement New feature or request label Oct 10, 2019
@eine
Copy link

eine commented Oct 21, 2019

This issue and #7 sum up ~100 reactions. @chrispat, @TingluoHuang, @madhurig, might we have an update about the status of this enhancement request?

@pelotom
Copy link

pelotom commented Oct 22, 2019

Also, I had a process which produced a .zip file, and when I discovered this idiosyncrasy I removed that step so that it just uploaded the directory... only to discover that the build now took 20 minutes where before it took ~1. It appears that when you do upload a folder, it does the zipping on the server instead of the client, which is just... why? I'm left feeling the only reasonable way to use this action is to zip your artifact locally yourself, then upload it and live with the fact that you will have to download a zip containing a zip.

@jperl
Copy link

jperl commented Oct 30, 2019

Ideally you could upload files uncompressed and be able to reference them by url. That way you could include screenshots within markdown of a status check / comment.

@chrisdembia
Copy link

This would be fantastic. In particular, the current zipping does not preserve symlinks or the executable bit.

@konradpabjan konradpabjan self-assigned this Nov 26, 2019
@dpy013
Copy link

dpy013 commented Feb 6, 2022

hello all
Is there a plan to solve this issue in 2022?

@dpowers86
Copy link

At the minimum, if the artifact is just a single file, the web interface shouldn't ZIP the file. Pass the raw file with the proper MIME type so if I upload a PDF or JPEG, I can just click it on the Actions tab and view it in my browser without unzipping it.

Unfortunately this seems to be a common theme with GitHub. Issues that I would consider show-stoppers or at least significant quality of life improvement are just rotting or getting closed without any time table except for "its on the back burner". If I could download individual items via the web or get the URLs from the API, we would likely need to pay GH for more storage. Instead I'll likely just use an S3 bucket and pay Amazon to store my stuff. They will let me set retention policies and a storage class so I can control my costs.

@fatinfarzanaazizan
Copy link

@konradpabjan are there any updates on this? would be nice to have this feature in 2022. thanks

tgharold added a commit to tgharold/Lussatite.FeatureManagement that referenced this issue May 11, 2022
Yes, this will create a zip inside a zip due to how actions/upload-artifact@v3
currently works.  See actions/upload-artifact/issues/3 in GitHub for details.

But it will let me inspect the result of the release zip without having to
create a release.
@and3rson
Copy link

Any progress on this? Being able to download a non-zipped artifact is absolutely vital.

@JojOatXGME
Copy link

JojOatXGME commented May 22, 2022

@and3rson I think #14 is the currently relevant successor for this topic.

@khans6
Copy link

khans6 commented Jul 22, 2022

I would also like this feature of downloading the uploaded artifact if its a single file as it is. It is annoying when it zips an already zipped file. I would really appreciate if it is implemented!

@dhruv-bansal
Copy link

dhruv-bansal commented Dec 10, 2022

> Upload-artifact not working for steps running in containers #13

Is this supported added?
With single upload actions can I create different artefacts with different path of files or I have to call this action multiple times?

@excitoon
Copy link

excitoon commented Feb 3, 2023

I would like to have this feature.

@rexlManu
Copy link

rexlManu commented Mar 8, 2023

I would really really like to have this feature!

@LeonardoBerlatto
Copy link

I really want this feature

@ADTC
Copy link

ADTC commented Mar 26, 2023

If this is a UI problem, then the solution would be for the UI to detect and modify its download action as follows:

  • If the artifact contains exactly 1 file, download the file directly.
  • If the artifact contains more than 1 file, zip the files up automatically and download the zip.

Who maintains the UI? Is it part of this repository?

@DineshRaturi-cpi
Copy link

Do we have any solution for this problem?
I want to upload a .png image on github actions and want to send its URL to slack. But since GitHub actions upload its artficats in zip format, I am unable to do that. Kindly help

@MCOfficer
Copy link

Do we have any solution for this problem? I want to upload a .png image on github actions and want to send its URL to slack. But since GitHub actions upload its artficats in zip format, I am unable to do that. Kindly help

Upload it somewhere -anywhere- else. Even nightly.link gives you zip files, so artifacts are not the solution here.

@torokati44
Copy link

+1 for this feature request... :P

@bosakstepan
Copy link

Needed!

@hajdukda
Copy link

hajdukda commented Sep 8, 2023

Do we have any solution for this problem? I want to upload a .png image on github actions and want to send its URL to slack. But since GitHub actions upload its artficats in zip format, I am unable to do that. Kindly help

Upload it somewhere -anywhere- else. Even nightly.link gives you zip files, so artifacts are not the solution here.

We pay for storage to use it. Stop being petty.

@MCOfficer
Copy link

MCOfficer commented Sep 8, 2023

Just to be clear, I'm not affiliated with github, that was just me telling you what we're stuck with. As of now, our best option to enable direct downloads is to upload it somewhere else. For example, make a separate repo, and have your CI push artifacts onto that repo's release page. Or push it onto netlify, or an R2 bucket (which has no egress fees).


Sidenote while i'm already posting: every "+1" or "needed" is sending notifications to at least 40 people. please just use the reactions on the original comment.

vszakats added a commit to curl/curl-for-win that referenced this issue Nov 10, 2023
Caveats:

- curl tool resides under `subdir/bin/` inside the package.
  Can be fixed locally by renaming curl to unique names, e.g.
  `curl-x64.exe` or `curl-riscv64`. Maybe even to a more globally
  unique name, such as `curl-linux-musl-amd64`.

- curl tool misses the exec permission so cannot be executed after
  unzipping. Needs `chmod +x` before doing so.
  https://github.com/actions/upload-artifact#permission-loss
  actions/upload-artifact#38

- There is no option to switch to tarball from zip.

- there is no option to skip zip and offer files as-is.
  (exec attribute would be lost in this case as well)
  actions/upload-artifact#39
  actions/upload-artifact#3 (closed)
  actions/upload-artifact#14 (pending upload-artifact@v4)

3-4 years old unresolved issues on the side of GitHub.
vszakats added a commit to curl/curl-for-win that referenced this issue Nov 10, 2023
Caveats:

- curl tool resides under `subdir/bin/` inside the package.
  Can be fixed locally by renaming curl to unique names, e.g.
  `curl-x64.exe` or `curl-riscv64`. Maybe even to a more globally
  unique name, such as `curl-linux-musl-amd64`.

- curl tool misses the exec permission so cannot be executed after
  unzipping. Needs `chmod +x` before doing so.
  https://github.com/actions/upload-artifact#permission-loss
  actions/upload-artifact#38

- There is no option to switch to tarball from zip.

- Uploading a `.tar.gz` will still get it zipped by GitHub.

- there is no option to skip zip and offer files as-is.
  (exec attribute would be lost in this case as well)
  actions/upload-artifact#39
  actions/upload-artifact#3 (closed)
  actions/upload-artifact#14 (pending upload-artifact@v4)

3-4 years old unresolved issues on the side of GitHub.
vszakats added a commit to curl/curl-for-win that referenced this issue Nov 10, 2023
Caveats:

- curl tool resides under `subdir/bin/` inside the package.
  Can be fixed locally by renaming curl to unique names, e.g.
  `curl-x64.exe` or `curl-riscv64`. Maybe even to a more globally
  unique name, such as `curl-linux-musl-amd64`.

- curl tool misses the exec permission so cannot be executed after
  unzipping. Needs `chmod +x` before doing so.
  https://github.com/actions/upload-artifact#permission-loss
  actions/upload-artifact#38

- There is no option to switch to tarball from zip.

- Uploading a `.tar.gz` will still get it zipped by GitHub.

- there is no option to skip zip and offer files as-is.
  (exec attribute would be lost in this case as well)
  actions/upload-artifact#39
  actions/upload-artifact#3 (closed)
  actions/upload-artifact#14 (pending upload-artifact@v4)

3-4 years old unresolved issues on the side of GitHub.
vszakats added a commit to curl/curl-for-win that referenced this issue Nov 10, 2023
They contain curl tool executables only, without static libs,
shared lib and other bits.

Caveats:

- curl tool resides under `subdir/` inside the package.
  Can be fixed locally in the future by renaming curl to unique names,
  e.g. `curl-x64.exe` or `curl-riscv64`. Maybe even to a more globally
  unique name, such as `curl-linux-musl-amd64`.

- curl tool misses the exec permission so cannot be executed after
  unzipping on *nix systems. Needs `chmod +x` before doing so.
  https://github.com/actions/upload-artifact#permission-loss
  actions/upload-artifact#38

- there is no option to switch to tarball from zip.

- uploading a `.tar.gz` will still get it zipped by GitHub.

- there is no option to skip zip and offer files as-is.
  (exec attribute would be lost in this case as well)
  actions/upload-artifact#39
  actions/upload-artifact#3 (closed)
  actions/upload-artifact#14 (pending upload-artifact@v4)

- a workaround for most of this is uploading them to our own
  server in the exact form we want.

3-4 years old unresolved issues on the side of GitHub.
vszakats added a commit to curl/curl-for-win that referenced this issue Nov 12, 2023
Caveats:

- curl tool resides under `subdir/bin/` inside the package.
  Can be fixed locally by renaming curl to unique names, e.g.
  `curl-x64.exe` or `curl-riscv64`. Maybe even to a more globally
  unique name, such as `curl-linux-musl-amd64`.

- curl tool misses the exec permission so cannot be executed after
  unzipping. Needs `chmod +x` before doing so.
  https://github.com/actions/upload-artifact#permission-loss
  actions/upload-artifact#38

- There is no option to switch to tarball from zip.

- Uploading a `.tar.gz` will still get it zipped by GitHub.

- there is no option to skip zip and offer files as-is.
  (exec attribute would be lost in this case as well)
  actions/upload-artifact#39
  actions/upload-artifact#3 (closed)
  actions/upload-artifact#14 (pending upload-artifact@v4)

3-4 years old unresolved issues on the side of GitHub.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2-preview Available or fixed in the v2-preview
Projects
None yet
Development

No branches or pull requests