Comments (11)
Sharing an update regarding open-sourcing this action
Sometime around mid-January mid-February we're planning on releasing a v2-beta
version of this action. It will be fully open-sourced and written with Node + TypeScript (similar to our other actions such as actions/cache
).
Currently this action is a plugin on the runner where it has some extra permissions to do certain things. The majority of the work being done for open-sourcing this involves creating new APIs that will be able to interact with artifacts without being tightly-coupled with the runner. A new open-sourced NPM package will be created that will consume/interact with these APIs (similar to what we have for @actions/core
or @actions/io
). Both upload-artifact
and download-artifact
will use this new package.
A lot of the top-requested issues/requests will be addressed such as #11 and #3.
More information and specifics will be shared right around the launch of the v2-beta
version. Thank you everyone for your patience ❤
from upload-artifact.
We are working towards this, our goal is for the community to be able to contribute fixes.
from upload-artifact.
Our runner was recently open-sourced. You can find all of the current code for v1
that is specific to upload-artifact
and download-artifact
here: https://github.com/actions/runner/tree/master/src/Runner.Plugins/Artifact
Note: All the artifact code in the runner will eventually be removed once v2
is released and v1
becomes deprecated. The code is all currently tied to the runner because there are some env variables that are only available to the runner (you cannot access these from an action). These env variables are used to make the necessary API calls.
from upload-artifact.
Will that code be moved to this repo when it is removed from there?
The code will be split between this repo and a new one we are creating for the upcoming npm package. This action (along with download-artifact
) will use the new package to make all of the necessary API calls. The new repo for the npm package will be open-sourced from the very beginning so most of the code will go there, anything else will end up here.
from upload-artifact.
The v2-preview
is ready to go. We would love to get feedback!
The core functionality to interact with artifacts can be found in the @actions/artifact
package (this was setup so that it is easier for action builders to interact with artifacts)
https://www.npmjs.com/package/@actions/artifact
https://github.com/actions/toolkit/tree/master/packages/artifact
This action now also uses @actions/glob
for things like wildcards and search:
https://www.npmjs.com/package/@actions/glob
https://github.com/actions/toolkit/tree/master/packages/glob
Everything else is in this repo 😀 Moving forward it will be much easier to accept contributions and feedback once the preview is over.
see: #62
from upload-artifact.
v2
upload artifact has been released! https://github.blog/changelog/2020-04-28-github-actions-v2-artifact-actions/
You can now use it by using actions/upload-artifact@v2
and all the source code is in the master
branch.
You can find all the core upload logic here or in the @actions/artifact
npm package. https://github.com/actions/toolkit/tree/master/packages/artifact
Artifact upload is now like a traditional typescript action and is no longer coupled to the runner. Moving forward it should be much easier to accept contributions and to add new features.
from upload-artifact.
I also came looking for the source to see if upload-artifact
supports me passing a command that returns a file path for the path
input (e.g., yarn cache dir
).
Update: It does not.
from upload-artifact.
I guess it's here: https://github.com/skx/github-action-publish-binaries
False alert :|
from upload-artifact.
@tedmiston You can use Action Outputs to do that, something like:
- name: Get yarn cache
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/upload-artifact@v1
with:
path: ${{ steps.yarn-cache.outputs.dir }}
Though for that specific case, you probably want to use actions/cache
instead
from upload-artifact.
All the artifact code in the runner will eventually be removed once
v2
is released andv1
becomes deprecated.
Will that code be moved to this repo when it is removed from there?
from upload-artifact.
Hope #14 will be also addressed in upcoming release as we forced to upload HTML pages to external host and there is no smart way to reference this data in embedded github checks - means need to looks throught stdout of step to find out a link.
from upload-artifact.
Related Issues (20)
- @v4 breaks workflows when using unprivileged containers HOT 3
- [bug] v4.3.1: Unexpected token '<', "<!DOCTYPE "... is not valid JSON HOT 9
- [feat req] support colon in file names HOT 1
- Add option to include explicit directory entries [feat req] HOT 1
- [feat req] merging of uploads ala v3 HOT 3
- Delete Artifact Action HOT 1
- #331
- [bug] Request failures in v4 on ECONNRESET and 403 Forbidden. HOT 5
- Temporary/intermediate artifacts HOT 2
- [bug] Failed to CreateArtifact: Failed to make request after 5 attempts: Request timeout HOT 2
- Rename the files after/before uploading
- [bug] Artifact overwrite doesn't always work HOT 2
- [bug]
- [bug] v3 and v4 hang 100% uploading from macos-13 runner following CPACK_GENERATOR "DragNDrop"
- Getting Dependabot Alert HOT 2
- [bug] all artifacts are not getting uploaded.
- [ci] `.github/workflows/codeql-analysis.yml` uses a `deprecated` version of `Node.js`
- [bug] Only contents of macOS-Application (***.app) get uploaded
- [bug]
- [bug] retrying a workflow causes uploaded artifacts from the previous attempt to become inaccessible
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from upload-artifact.