Compare commits

..

33 Commits

Author SHA1 Message Date
Brian Cristante
3be87be14a Ingest v0.5.2 of @actions/artifact (#100)
* npm install --update @actions/artifact

* Update .licenses file

* npm run release
2021-06-16 16:19:05 -04:00
Brian Cristante
8bef1ad834 Merge pull request #97 from actions/dependabot/npm_and_yarn/glob-parent-5.1.2
Bump glob-parent from 5.1.1 to 5.1.2
2021-06-16 16:06:52 -04:00
Brian Cristante
2940e0d2ad Merge pull request #92 from actions/dependabot/npm_and_yarn/hosted-git-info-2.8.9
Bump hosted-git-info from 2.8.5 to 2.8.9
2021-06-16 16:06:23 -04:00
Brian Cristante
bd90b34638 Merge pull request #91 from actions/dependabot/npm_and_yarn/lodash-4.17.21
Bump lodash from 4.17.19 to 4.17.21
2021-06-16 16:06:06 -04:00
Brian Cristante
3b6d0aba35 Merge pull request #99 from actions/brcrista/dependabot-push
Don't trigger CodeQL on Dependabot push
2021-06-16 16:05:29 -04:00
Brian Cristante
46a6d6f216 Don't trigger CodeQL on Dependabot push 2021-06-16 16:01:04 -04:00
dependabot[bot]
246a0f4716 Bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 13:14:19 +00:00
Robert Cannon
df388c92ce Clarified the v1 and v2 differences (#96)
The original text implies by supplying no inputs all files are placed in the root directory without added directories by focusing only on the `path` input. In practice, supplying no inputs results in the backwards compatible `v1` behavior of creating an extra parameter. This may be obvious in some scenarios and stated somewhat later in the document, but is less obvious when the "name" matches a filename for a single file artifact.
2021-05-21 21:20:10 +02:00
dependabot[bot]
87f717a35d Bump hosted-git-info from 2.8.5 to 2.8.9
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.5 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.9)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 17:16:23 +00:00
dependabot[bot]
ae445150c2 Bump lodash from 4.17.19 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 12:10:53 +00:00
Konrad Pabjan
158ca71f7c Bump @actions/artifact to version 0.5.1 (#85) 2021-04-06 16:50:27 -04:00
dependabot[bot]
65bdb44741 Bump y18n from 4.0.0 to 4.0.1 (#84)
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-06 15:23:44 -04:00
Josh Gross
782e5ae9ea Merge pull request #81 from rneatherway/codeql-add-pull-request-trigger
Add on: pull_request trigger to CodeQL workflow
2021-01-14 18:42:16 -05:00
Robin Neatherway
a6ff13d56d Add on: pull_request trigger to CodeQL workflow
From February 2021, in order to provide feedback on pull requests, Code Scanning workflows must be configured with both `push` and `pull_request` triggers. This is because Code Scanning compares the results from a pull request against the results for the base branch to tell you only what has changed between the two.

Early in the beta period we supported displaying results on pull requests for workflows with only `push` triggers, but have discontinued support as this proved to be less robust.

See https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#scanning-pull-requests for more information on how best to configure your Code Scanning workflows.
2021-01-13 11:19:52 +00:00
Konrad Pabjan
4a7a711286 Add retries to all HTTP calls + fix dependabot alerts (#80)
* Update @actions/artifact package to version 0.5.0

* bump eslint-plugin-github to version 4.1.1

* Update artifact.dep.yml
2021-01-04 15:47:26 +01:00
Konrad Pabjan
f144d3c391 Update @actions/artifact from 0.3.5 to 0.4.2 (#73)
* Update @actions/artifact from 0.3.5 to 0.4.2

* Update package versions in .licenses
2020-12-15 10:55:26 -05:00
Josh Gross
987de047e8 Merge pull request #71 from actions/joshmgross/fix-codeowners
Fix CODEOWNERS team name
2020-12-07 15:50:08 -05:00
Josh Gross
89cfa805e3 Fix CODEOWNERS team name 2020-12-07 13:35:10 -05:00
Yang Cao
37439a4b3c Merge pull request #69 from brcrista/patch-1
Add CODEOWNERS file
2020-11-25 15:24:36 -05:00
Brian Cristante
d84bbb4c0a Create CODEOWNERS 2020-11-25 15:18:14 -05:00
Konrad Pabjan
f8e41fbffe Bump @actions/core to v1.2.6 (#64)
* Bump @actions/core to v1.2.6

* Update version in license for @actions/core

* Fix typo
2020-11-13 14:53:33 -05:00
Yang Cao
f60857ee28 Merge pull request #56 from thboop/main
Add `Licensed` To Help Verify Prod Licenses
2020-09-23 17:18:58 -04:00
Thomas Boop
6da19888bb Add contributing.md information 2020-09-23 17:02:34 -04:00
Thomas Boop
38343be9e7 Ignore Generated Files in Git PR's 2020-08-26 11:21:58 -04:00
Justin Weissig
910a9eff4a Fixed minor spelling mistake (#59)
Made two minor changes to fix spelling mistakes.
2020-08-24 23:02:33 +02:00
Thomas Boop
66ed71e3c8 Manually Review licenses 2020-08-11 20:23:22 -04:00
Thomas Boop
fbf2bddea0 Add licensed workflow and files 2020-08-11 20:20:07 -04:00
Thomas Boop
c3f5d00c87 Add Third Party License Information to Dist Files (#54)
* Add Third Party License Information

* Update licenses for @actions npm modules
2020-08-10 18:21:40 +02:00
Konrad Pabjan
b3cedea9be Bump @actions/artifact to 0.3.5 (#52) 2020-08-04 17:55:46 +02:00
Konrad Pabjan
80d2d4023c Document Artifact Limitations + Bump actions/artifact package version (#51)
* Document Artifact Limitations

* README Updates

* Restructure README
2020-07-31 17:16:59 +02:00
Konrad Pabjan
381af06b42 Add support for tilde expansion (#50)
* Add support for tilde expansion

* Print resolved path with debug

* Update README

* README

* Only replace tilde in certain scenarios

* Fix
2020-07-30 12:01:38 +02:00
dependabot[bot]
83fcc74d04 Bump lodash from 4.17.15 to 4.17.19 (#46)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-22 13:26:09 +02:00
Konrad Pabjan
1ac47ba4b6 Update README.md 2020-07-15 12:35:21 +02:00
31 changed files with 2496 additions and 2642 deletions

3
.gitattributes vendored
View File

@@ -1 +1,2 @@
* text=auto eol=lf
* text=auto eol=lf
.licenses/** -diff linguist-generated=true

1
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1 @@
* @actions/artifacts-actions

View File

@@ -2,6 +2,8 @@ name: "Code scanning - action"
on:
push:
branches-ignore: "dependabot/**"
pull_request:
paths-ignore:
- '**.md'
schedule:

20
.github/workflows/licensed.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Licensed
on:
push: {branches: main}
pull_request: {branches: main}
jobs:
test:
runs-on: ubuntu-latest
name: Check licenses
steps:
- uses: actions/checkout@v2
- run: npm ci
- name: Install licensed
run: |
cd $RUNNER_TEMP
curl -Lfs -o licensed.tar.gz https://github.com/github/licensed/releases/download/2.12.2/licensed-2.12.2-linux-x64.tar.gz
sudo tar -xzf licensed.tar.gz
sudo mv licensed /usr/local/bin/licensed
- run: licensed status

View File

@@ -68,16 +68,24 @@ jobs:
name: 'Artifact-A'
path: some/new/path
# Test downloading an artifact using tilde expansion
- name: Download artifact A
uses: ./
with:
name: 'Artifact-A'
path: ~/some/path/with/a/tilde
- name: Verify successful download
run: |
$file = "some/new/path/file-A.txt"
if(!(Test-Path -path $file))
$file1 = "some/new/path/file-A.txt"
$file2 = "~/some/path/with/a/tilde/file-A.txt"
if(!(Test-Path -path $file1) -or !(Test-Path -path $file2))
{
Write-Error "Expected file does not exist"
Write-Error "Expected files do not exist"
}
if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet"))
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Lorem ipsum dolor sit amet"))
{
Write-Error "File contents of downloaded artifact are incorrect"
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh

15
.licensed.yml Normal file
View File

@@ -0,0 +1,15 @@
sources:
npm: true
allowed:
- apache-2.0
- bsd-2-clause
- bsd-3-clause
- isc
- mit
- cc0-1.0
- unlicense
reviewed:
npm:
- fs.realpath

BIN
.licenses/npm/@actions/artifact.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/core.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/http-client.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@types/tmp.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/balanced-match.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/brace-expansion.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/concat-map.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/fs.realpath.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/glob.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/inflight.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/inherits.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/minimatch.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/once.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/path-is-absolute.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/rimraf.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tmp-promise.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tmp.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tunnel.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/wrappy.dep.yml generated Normal file

Binary file not shown.

View File

@@ -14,7 +14,7 @@ Please note that this project is released with a [Contributor Code of Conduct][c
## Found a bug?
- **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/actions/download-artifact/issues).
- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/actions/download-artifact/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or a **reproducable test case** demonstrating the expected behavior that is not occurring.
- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/actions/download-artifact/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or a **reproducible test case** demonstrating the expected behavior that is not occurring.
- If possible, use the relevant bug report templates to create the issue.
## What should I know before submitting a pull request or issue
@@ -33,7 +33,7 @@ Artifact related issues will be tracked in this repository so please do not open
7. Make sure your code passes linting: `npm run lint`
8. Update `dist/index.js` using `npm run release`. This creates a single javascript file that is used as an entry-point for the action
7. Push to your fork and [submit a pull request][pr]
8. Pat your self on the back and wait for your pull request to be reviewed and merged.
8. Pat yourself on the back and wait for your pull request to be reviewed and merged.
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
@@ -41,6 +41,10 @@ Here are a few things you can do that will increase the likelihood of your pull
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
## Licensed
This repository uses a tool called [Licensed](https://github.com/github/licensed) to verify third party dependencies. You may need to locally install licensed and run `licensed cache` to update the dependency cache if you install or update a production dependency. If licensed cache is unable to determine the dependency, you may need to modify the cache file yourself to put the correct license. You should still verify the dependency, licensed is a tool to help, but is not a substitute for human review of dependencies.
## Resources
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)

View File

@@ -46,6 +46,14 @@ steps:
working-directory: path/to/artifact
```
Basic tilde expansion is supported for the `path` input:
```yaml
- uses: actions/download-artifact@v2
with:
name: my-artifact
path: ~/download/path
```
## Compatibility between `v1` and `v2`
When using `download-artifact@v1`, a directory denoted by the name of the artifact would be created if the `path` input was not provided. All of the contents would be downloaded to this directory.
@@ -55,7 +63,7 @@ When using `download-artifact@v1`, a directory denoted by the name of the artifa
... contents of my-artifact
```
With `v2`, there is no longer an extra directory that is created if the `path` input is not provided. All the contents are downloaded to the current working directory.
With `v2`, when an artifact is specified by the `name` input, there is no longer an extra directory that is created if the `path` input is not provided. All the contents are downloaded to the current working directory.
```
current/working/directory/
... contents of my-artifact
@@ -127,10 +135,34 @@ steps:
> Note: The `id` defined in the `download/artifact` step must match the `id` defined in the `echo` step (i.e `steps.[ID].outputs.download-path`)
# Limitations
### Permission Loss
:exclamation: File permissions are not maintained during artifact upload :exclamation: For example, if you make a file executable using `chmod` and then upload that file, post-download the file is no longer guaranteed to be set as an executable.
### Case Insensitive Uploads
:exclamation: File uploads are case insensitive :exclamation: If you upload `A.txt` and `a.txt` with the same root path, only a single file will be saved and available during download.
### Maintaining file permissions and case sensitive files
If file permissions and case sensitivity are required, you can `tar` all of your files together before artifact upload. Post download, the `tar` file will maintain file permissions and case sensitivity.
```yaml
- name: 'Tar files'
run: tar -cvf my_files.tar /path/to/my/directory
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
with:
name: my-artifact
path: my_files.tar
```
# @actions/artifact package
Internally the [@actions/artifact](https://github.com/actions/toolkit/tree/master/packages/artifact) NPM package is used to interact with artifacts. You can find additional documentation there along with all the source code related to artifact download.
Internally the [@actions/artifact](https://github.com/actions/toolkit/tree/main/packages/artifact) NPM package is used to interact with artifacts. You can find additional documentation there along with all the source code related to artifact download.
# License

3550
dist/index.js vendored

File diff suppressed because it is too large Load Diff

1457
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -27,15 +27,17 @@
"url": "https://github.com/actions/download-artifact/issues"
},
"homepage": "https://github.com/actions/download-artifact#readme",
"dependencies": {
"@actions/artifact": "^0.5.2",
"@actions/core": "^1.2.6"
},
"devDependencies": {
"@actions/artifact": "^0.3.1",
"@actions/core": "^1.2.4",
"@types/node": "^12.12.6",
"@typescript-eslint/parser": "^2.30.0",
"@zeit/ncc": "^0.22.1",
"concurrently": "^5.2.0",
"eslint": "^7.4.0",
"eslint-plugin-github": "^3.4.1",
"eslint-plugin-github": "^4.1.1",
"prettier": "^2.0.5",
"typescript": "^3.8.3"
}

View File

@@ -1,5 +1,6 @@
import * as core from '@actions/core'
import * as artifact from '@actions/artifact'
import * as os from 'os'
import {resolve} from 'path'
import {Inputs, Outputs} from './constants'
@@ -8,6 +9,15 @@ async function run(): Promise<void> {
const name = core.getInput(Inputs.Name, {required: false})
const path = core.getInput(Inputs.Path, {required: false})
let resolvedPath
// resolve tilde expansions, path.replace only replaces the first occurrence of a pattern
if (path.startsWith(`~`)) {
resolvedPath = resolve(path.replace('~', os.homedir()))
} else {
resolvedPath = resolve(path)
}
core.debug(`Resolved path is ${resolvedPath}`)
const artifactClient = artifact.create()
if (!name) {
// download all artifacts
@@ -15,7 +25,9 @@ async function run(): Promise<void> {
core.info(
'Creating an extra directory for each artifact that is being downloaded'
)
const downloadResponse = await artifactClient.downloadAllArtifacts(path)
const downloadResponse = await artifactClient.downloadAllArtifacts(
resolvedPath
)
core.info(`There were ${downloadResponse.length} artifacts downloaded`)
for (const artifact of downloadResponse) {
core.info(
@@ -30,7 +42,7 @@ async function run(): Promise<void> {
}
const downloadResponse = await artifactClient.downloadArtifact(
name,
path,
resolvedPath,
downloadOptions
)
core.info(
@@ -39,7 +51,7 @@ async function run(): Promise<void> {
}
// output the directory that the artifact(s) was/were downloaded to
// if no path is provided, an empty string resolves to the current working directory
core.setOutput(Outputs.DownloadPath, resolve(path))
core.setOutput(Outputs.DownloadPath, resolvedPath)
core.info('Artifact download has finished successfully')
} catch (err) {
core.setFailed(err.message)