1
0
Fork 0
mirror of https://gitea.com/actions/upload-artifact.git synced 2024-08-16 09:49:51 +02:00

chore: expand prettier and ESLint globs

This commit is contained in:
Nick Schonning 2021-12-01 16:52:51 -05:00
parent 055b8b3f04
commit d9291ac874
No known key found for this signature in database
GPG key ID: 5DDAAD9C9AAFFD9F
17 changed files with 300 additions and 301 deletions

View file

@ -1,19 +1,19 @@
{ {
"env": { "node": true, "jest": true }, "env": {"node": true, "jest": true},
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "ecmaVersion": 9, "sourceType": "module" }, "parserOptions": {"ecmaVersion": 9, "sourceType": "module"},
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
"plugin:import/errors", "plugin:import/errors",
"plugin:import/warnings", "plugin:import/warnings",
"plugin:import/typescript", "plugin:import/typescript",
"plugin:prettier/recommended", "plugin:prettier/recommended",
"prettier/@typescript-eslint" "prettier/@typescript-eslint"
], ],
"rules": { "rules": {
"@typescript-eslint/no-empty-function": "off" "@typescript-eslint/no-empty-function": "off"
}, },
"plugins": ["@typescript-eslint", "jest"] "plugins": ["@typescript-eslint", "jest"]
} }

View file

@ -1,4 +1,4 @@
name: "🐛 Bug report" name: '🐛 Bug report'
description: Let us know about a bug! description: Let us know about a bug!
labels: ['bug'] labels: ['bug']
title: '[bug]' title: '[bug]'
@ -60,4 +60,4 @@ body:
id: ghes id: ghes
attributes: attributes:
label: Are you on GitHub Enterprise Server? If so, what version? label: Are you on GitHub Enterprise Server? If so, what version?
placeholder: vX.Y placeholder: vX.Y

View file

@ -1,4 +1,4 @@
name: "📚 Documentation issues" name: '📚 Documentation issues'
description: Make a suggestion to improve the documentation! description: Make a suggestion to improve the documentation!
labels: ['documentation'] labels: ['documentation']
title: '[docs]' title: '[docs]'
@ -25,4 +25,4 @@ body:
description: | description: |
Give as much detail as you can to help us understand the changes you want to see. Give as much detail as you can to help us understand the changes you want to see.
validations: validations:
required: true required: true

View file

@ -1,4 +1,4 @@
name: "🎁 Feature request" name: '🎁 Feature request'
description: Suggest a new feature/enhancement! description: Suggest a new feature/enhancement!
labels: ['enhancement'] labels: ['enhancement']
title: '[feat req]' title: '[feat req]'
@ -17,4 +17,4 @@ body:
attributes: attributes:
label: Why is this needed? label: Why is this needed?
validations: validations:
required: true required: true

View file

@ -1,8 +1,9 @@
name: "Code scanning - action" name: 'Code scanning - action'
on: on:
push: push:
branches-ignore: "dependabot/**" branches-ignore:
- 'dependabot/**'
pull_request: pull_request:
paths-ignore: paths-ignore:
- '**.md' - '**.md'
@ -11,36 +12,35 @@ on:
jobs: jobs:
CodeQL-Build: CodeQL-Build:
# CodeQL runs on ubuntu-latest and windows-latest # CodeQL runs on ubuntu-latest and windows-latest
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v1 uses: github/codeql-action/init@v1
# Override language selection by uncommenting this and choosing your languages
# with:
# languages: go, javascript, csharp, python, cpp, java
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Override language selection by uncommenting this and choosing your languages
# If this step fails, then you should remove it and run the build manually (see below) # with:
- name: Autobuild # languages: go, javascript, csharp, python, cpp, java
uses: github/codeql-action/autobuild@v1 # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project # and modify them (or add more) to build your code if your project
# uses a compiled language # uses a compiled language
#- run: | #- run: |
# make bootstrap # make bootstrap
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1 uses: github/codeql-action/analyze@v1

View file

@ -20,9 +20,9 @@ jobs:
name: releaseNewActionVersion name: releaseNewActionVersion
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Update the ${{ env.TAG_NAME }} tag - name: Update the ${{ env.TAG_NAME }} tag
id: update-major-tag id: update-major-tag
uses: actions/publish-action@v0.2.1 uses: actions/publish-action@v0.2.1
with: with:
source-tag: ${{ env.TAG_NAME }} source-tag: ${{ env.TAG_NAME }}
slack-webhook: ${{ secrets.SLACK_WEBHOOK }} slack-webhook: ${{ secrets.SLACK_WEBHOOK }}

View file

@ -10,7 +10,6 @@ on:
- '**.md' - '**.md'
jobs: jobs:
build: build:
name: Build name: Build
@ -22,149 +21,149 @@ jobs:
runs-on: ${{ matrix.runs-on }} runs-on: ${{ matrix.runs-on }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Set Node.js 12.x - name: Set Node.js 12.x
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
node-version: 12.x node-version: 12.x
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Compile - name: Compile
run: npm run build run: npm run build
- name: npm test - name: npm test
run: npm test run: npm test
- name: Lint - name: Lint
run: npm run lint run: npm run lint
- name: Format - name: Format
run: npm run format-check run: npm run format-check
# Test end-to-end by uploading two artifacts and then downloading them # Test end-to-end by uploading two artifacts and then downloading them
- name: Create artifact files - name: Create artifact files
run: | run: |
mkdir -p path/to/dir-1 mkdir -p path/to/dir-1
mkdir -p path/to/dir-2 mkdir -p path/to/dir-2
mkdir -p path/to/dir-3 mkdir -p path/to/dir-3
echo "Lorem ipsum dolor sit amet" > path/to/dir-1/file1.txt echo "Lorem ipsum dolor sit amet" > path/to/dir-1/file1.txt
echo "Hello world from file #2" > path/to/dir-2/file2.txt echo "Hello world from file #2" > path/to/dir-2/file2.txt
echo "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip" > path/to/dir-3/gzip.txt echo "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip" > path/to/dir-3/gzip.txt
# Upload a single file artifact # Upload a single file artifact
- name: 'Upload artifact #1' - name: 'Upload artifact #1'
uses: ./ uses: ./
with: with:
name: 'Artifact-A' name: 'Artifact-A'
path: path/to/dir-1/file1.txt path: path/to/dir-1/file1.txt
# Upload using a wildcard pattern, name should default to 'artifact' if not provided # Upload using a wildcard pattern, name should default to 'artifact' if not provided
- name: 'Upload artifact #2' - name: 'Upload artifact #2'
uses: ./ uses: ./
with: with:
path: path/**/dir*/ path: path/**/dir*/
# Upload a directory that contains a file that will be uploaded with GZip # Upload a directory that contains a file that will be uploaded with GZip
- name: 'Upload artifact #3' - name: 'Upload artifact #3'
uses: ./ uses: ./
with: with:
name: 'GZip-Artifact' name: 'GZip-Artifact'
path: path/to/dir-3/ path: path/to/dir-3/
# Upload a directory that contains a file that will be uploaded with GZip # Upload a directory that contains a file that will be uploaded with GZip
- name: 'Upload artifact #4' - name: 'Upload artifact #4'
uses: ./ uses: ./
with: with:
name: 'Multi-Path-Artifact' name: 'Multi-Path-Artifact'
path: | path: |
path/to/dir-1/* path/to/dir-1/*
path/to/dir-[23]/* path/to/dir-[23]/*
!path/to/dir-3/*.txt !path/to/dir-3/*.txt
# Verify artifacts. Switch to download-artifact@v2 once it's out of preview # Verify artifacts. Switch to download-artifact@v2 once it's out of preview
# Download Artifact #1 and verify the correctness of the content # Download Artifact #1 and verify the correctness of the content
- name: 'Download artifact #1' - name: 'Download artifact #1'
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
with: with:
name: 'Artifact-A' name: 'Artifact-A'
path: some/new/path path: some/new/path
- name: 'Verify Artifact #1' - name: 'Verify Artifact #1'
run: | run: |
$file = "some/new/path/file1.txt" $file = "some/new/path/file1.txt"
if(!(Test-Path -path $file)) if(!(Test-Path -path $file))
{ {
Write-Error "Expected file does not exist" Write-Error "Expected file does not exist"
} }
if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet")) if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet"))
{ {
Write-Error "File contents of downloaded artifact are incorrect" Write-Error "File contents of downloaded artifact are incorrect"
} }
shell: pwsh shell: pwsh
# Download Artifact #2 and verify the correctness of the content # Download Artifact #2 and verify the correctness of the content
- name: 'Download artifact #2' - name: 'Download artifact #2'
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1
with: with:
name: 'artifact' name: 'artifact'
path: some/other/path path: some/other/path
- name: 'Verify Artifact #2' - name: 'Verify Artifact #2'
run: | run: |
$file1 = "some/other/path/to/dir-1/file1.txt" $file1 = "some/other/path/to/dir-1/file1.txt"
$file2 = "some/other/path/to/dir-2/file2.txt" $file2 = "some/other/path/to/dir-2/file2.txt"
if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) if(!(Test-Path -path $file1) -or !(Test-Path -path $file2))
{ {
Write-Error "Expected files do not exist" Write-Error "Expected files do not exist"
} }
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2")) if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2"))
{ {
Write-Error "File contents of downloaded artifacts are incorrect" Write-Error "File contents of downloaded artifacts are incorrect"
} }
shell: pwsh shell: pwsh
# Download Artifact #3 and verify the correctness of the content
- name: 'Download artifact #3'
uses: actions/download-artifact@v1
with:
name: 'GZip-Artifact'
path: gzip/artifact/path
# Because a directory was used as input during the upload the parent directories, path/to/dir-3/, should not be included in the uploaded artifact # Download Artifact #3 and verify the correctness of the content
- name: 'Verify Artifact #3' - name: 'Download artifact #3'
run: | uses: actions/download-artifact@v1
$gzipFile = "gzip/artifact/path/gzip.txt" with:
if(!(Test-Path -path $gzipFile)) name: 'GZip-Artifact'
{ path: gzip/artifact/path
Write-Error "Expected file do not exist"
}
if(!((Get-Content $gzipFile) -ceq "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip"))
{
Write-Error "File contents of downloaded artifact is incorrect"
}
shell: pwsh
- name: 'Download artifact #4' # Because a directory was used as input during the upload the parent directories, path/to/dir-3/, should not be included in the uploaded artifact
uses: actions/download-artifact@v1 - name: 'Verify Artifact #3'
with: run: |
name: 'Multi-Path-Artifact' $gzipFile = "gzip/artifact/path/gzip.txt"
path: multi/artifact if(!(Test-Path -path $gzipFile))
{
Write-Error "Expected file do not exist"
}
if(!((Get-Content $gzipFile) -ceq "This is a going to be a test for a large enough file that should get compressed with GZip. The @actions/artifact package uses GZip to upload files. This text should have a compression ratio greater than 100% so it should get uploaded using GZip"))
{
Write-Error "File contents of downloaded artifact is incorrect"
}
shell: pwsh
- name: 'Verify Artifact #4' - name: 'Download artifact #4'
run: | uses: actions/download-artifact@v1
$file1 = "multi/artifact/dir-1/file1.txt" with:
$file2 = "multi/artifact/dir-2/file2.txt" name: 'Multi-Path-Artifact'
if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) path: multi/artifact
{
Write-Error "Expected files do not exist" - name: 'Verify Artifact #4'
} run: |
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2")) $file1 = "multi/artifact/dir-1/file1.txt"
{ $file2 = "multi/artifact/dir-2/file2.txt"
Write-Error "File contents of downloaded artifacts are incorrect" if(!(Test-Path -path $file1) -or !(Test-Path -path $file2))
} {
shell: pwsh Write-Error "Expected files do not exist"
}
if(!((Get-Content $file1) -ceq "Lorem ipsum dolor sit amet") -or !((Get-Content $file2) -ceq "Hello world from file #2"))
{
Write-Error "File contents of downloaded artifacts are incorrect"
}
shell: pwsh

View file

@ -12,4 +12,4 @@ allowed:
reviewed: reviewed:
npm: npm:
- fs.realpath - fs.realpath

View file

@ -1,3 +1,4 @@
dist/ dist/
lib/ lib/
node_modules/ node_modules/
.licenses/

View file

@ -1,11 +1,10 @@
{ {
"printWidth": 80, "printWidth": 80,
"tabWidth": 2, "tabWidth": 2,
"useTabs": false, "useTabs": false,
"semi": false, "semi": false,
"singleQuote": true, "singleQuote": true,
"trailingComma": "none", "trailingComma": "none",
"bracketSpacing": false, "bracketSpacing": false,
"arrowParens": "avoid", "arrowParens": "avoid"
"parser": "typescript" }
}

View file

@ -14,21 +14,21 @@ appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to creating a positive environment Examples of behavior that contributes to creating a positive environment
include: include:
* Using welcoming and inclusive language - Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences - Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism - Gracefully accepting constructive criticism
* Focusing on what is best for the community - Focusing on what is best for the community
* Showing empathy towards other community members - Showing empathy towards other community members
Examples of unacceptable behavior by participants include: Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or - The use of sexualized language or imagery and unwelcome sexual attention or
advances advances
* Trolling, insulting/derogatory comments, and personal or political attacks - Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment - Public or private harassment
* Publishing others' private information, such as a physical or electronic - Publishing others' private information, such as a physical or electronic
address, without explicit permission address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a - Other conduct which could reasonably be considered inappropriate in a
professional setting professional setting
## Our Responsibilities ## Our Responsibilities

View file

@ -32,8 +32,8 @@ Artifact related issues will be tracked in this repository so please do not open
6. Make sure your code is correctly formatted: `npm run format` 6. Make sure your code is correctly formatted: `npm run format`
7. Make sure your code passes linting: `npm run lint` 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 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] 9. 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. 10. Pat your self 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: Here are a few things you can do that will increase the likelihood of your pull request being accepted:

126
README.md
View file

@ -28,16 +28,16 @@ See [action.yml](action.yml)
```yaml ```yaml
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: mkdir -p path/to/artifact - run: mkdir -p path/to/artifact
- run: echo hello > path/to/artifact/world.txt - run: echo hello > path/to/artifact/world.txt
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
with: with:
name: my-artifact name: my-artifact
path: path/to/artifact/world.txt path: path/to/artifact/world.txt
``` ```
### Upload an Entire Directory ### Upload an Entire Directory
@ -152,17 +152,17 @@ With the following example, the available artifact (named `artifact` by default
Each artifact behaves as a file share. Uploading to the same artifact multiple times in the same workflow can overwrite and append already uploaded files: Each artifact behaves as a file share. Uploading to the same artifact multiple times in the same workflow can overwrite and append already uploaded files:
```yaml ```yaml
strategy: strategy:
matrix: matrix:
node-version: [8.x, 10.x, 12.x, 13.x] node-version: [8.x, 10.x, 12.x, 13.x]
steps: steps:
- name: Create a file - name: Create a file
run: echo ${{ matrix.node-version }} > my_file.txt run: echo ${{ matrix.node-version }} > my_file.txt
- name: Accidentally upload to the same artifact via multiple jobs - name: Accidentally upload to the same artifact via multiple jobs
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: my-artifact name: my-artifact
path: ${{ github.workspace }} path: ${{ github.workspace }}
``` ```
> **_Warning:_** Be careful when uploading to the same artifact via multiple jobs as artifacts may become corrupted. When uploading a file with an identical name and path in multiple jobs, uploads may fail with 503 errors due to conflicting uploads happening at the same time. Ensure uploads to identical locations to not interfere with each other. > **_Warning:_** Be careful when uploading to the same artifact via multiple jobs as artifacts may become corrupted. When uploading a file with an identical name and path in multiple jobs, uploads may fail with 503 errors due to conflicting uploads happening at the same time. Ensure uploads to identical locations to not interfere with each other.
@ -170,10 +170,10 @@ Each artifact behaves as a file share. Uploading to the same artifact multiple t
In the above example, four jobs will upload four different files to the same artifact but there will only be one file available when `my-artifact` is downloaded. Each job overwrites what was previously uploaded. To ensure that jobs don't overwrite existing artifacts, use a different name per job: In the above example, four jobs will upload four different files to the same artifact but there will only be one file available when `my-artifact` is downloaded. Each job overwrites what was previously uploaded. To ensure that jobs don't overwrite existing artifacts, use a different name per job:
```yaml ```yaml
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: my-artifact ${{ matrix.node-version }} name: my-artifact ${{ matrix.node-version }}
path: ${{ github.workspace }} path: ${{ github.workspace }}
``` ```
### Environment Variables and Tilde Expansion ### Environment Variables and Tilde Expansion
@ -181,42 +181,42 @@ In the above example, four jobs will upload four different files to the same art
You can use `~` in the path input as a substitute for `$HOME`. Basic tilde expansion is supported: You can use `~` in the path input as a substitute for `$HOME`. Basic tilde expansion is supported:
```yaml ```yaml
- run: | - run: |
mkdir -p ~/new/artifact mkdir -p ~/new/artifact
echo hello > ~/new/artifact/world.txt echo hello > ~/new/artifact/world.txt
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
with: with:
name: Artifacts-V3 name: Artifacts-V3
path: ~/new/**/* path: ~/new/**/*
``` ```
Environment variables along with context expressions can also be used for input. For documentation see [context and expression syntax](https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions): Environment variables along with context expressions can also be used for input. For documentation see [context and expression syntax](https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions):
```yaml ```yaml
env: env:
name: my-artifact name: my-artifact
steps: steps:
- run: | - run: |
mkdir -p ${{ github.workspace }}/artifact mkdir -p ${{ github.workspace }}/artifact
echo hello > ${{ github.workspace }}/artifact/world.txt echo hello > ${{ github.workspace }}/artifact/world.txt
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
with: with:
name: ${{ env.name }}-name name: ${{ env.name }}-name
path: ${{ github.workspace }}/artifact/**/* path: ${{ github.workspace }}/artifact/**/*
``` ```
For environment variables created in other steps, make sure to use the `env` expression syntax For environment variables created in other steps, make sure to use the `env` expression syntax
```yaml ```yaml
steps: steps:
- run: | - run: |
mkdir testing mkdir testing
echo "This is a file to upload" > testing/file.txt echo "This is a file to upload" > testing/file.txt
echo "artifactPath=testing/file.txt" >> $GITHUB_ENV echo "artifactPath=testing/file.txt" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
with: with:
name: artifact name: artifact
path: ${{ env.artifactPath }} # this will resolve to testing/file.txt at runtime path: ${{ env.artifactPath }} # this will resolve to testing/file.txt at runtime
``` ```
### Retention Period ### Retention Period
@ -224,15 +224,15 @@ For environment variables created in other steps, make sure to use the `env` exp
Artifacts are retained for 90 days by default. You can specify a shorter retention period using the `retention-days` input: Artifacts are retained for 90 days by default. You can specify a shorter retention period using the `retention-days` input:
```yaml ```yaml
- name: Create a file - name: Create a file
run: echo "I won't live long" > my_file.txt run: echo "I won't live long" > my_file.txt
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: my-artifact name: my-artifact
path: my_file.txt path: my_file.txt
retention-days: 5 retention-days: 5
``` ```
The retention period must be between 1 and 90 inclusive. For more information see [artifact and log retention policies](https://docs.github.com/en/free-pro-team@latest/actions/reference/usage-limits-billing-and-administration#artifact-and-log-retention-policy). The retention period must be between 1 and 90 inclusive. For more information see [artifact and log retention policies](https://docs.github.com/en/free-pro-team@latest/actions/reference/usage-limits-billing-and-administration#artifact-and-log-retention-policy).
@ -266,14 +266,14 @@ During a workflow run, files are uploaded and downloaded individually using the
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: 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 ```yaml
- name: Tar files - name: Tar files
run: tar -cvf my_files.tar /path/to/my/directory run: tar -cvf my_files.tar /path/to/my/directory
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: my-artifact name: my-artifact
path: my_files.tar path: my_files.tar
``` ```
### Too many uploads resulting in 429 responses ### Too many uploads resulting in 429 responses

View file

@ -1,7 +1,7 @@
name: 'Upload a Build Artifact' name: 'Upload a Build Artifact'
description: 'Upload a build artifact that can be used by subsequent workflow steps' description: 'Upload a build artifact that can be used by subsequent workflow steps'
author: 'GitHub' author: 'GitHub'
inputs: inputs:
name: name:
description: 'Artifact name' description: 'Artifact name'
default: 'artifact' default: 'artifact'

View file

@ -1,12 +1,12 @@
module.exports = { module.exports = {
clearMocks: true, clearMocks: true,
moduleFileExtensions: ['js', 'ts'], moduleFileExtensions: ['js', 'ts'],
roots: ['<rootDir>'], roots: ['<rootDir>'],
testEnvironment: 'node', testEnvironment: 'node',
testMatch: ['**/*.test.ts'], testMatch: ['**/*.test.ts'],
testRunner: 'jest-circus/runner', testRunner: 'jest-circus/runner',
transform: { transform: {
'^.+\\.ts$': 'ts-jest' '^.+\\.ts$': 'ts-jest'
}, },
verbose: true verbose: true
} }

View file

@ -7,9 +7,9 @@
"build": "tsc", "build": "tsc",
"release": "ncc build src/upload-artifact.ts && git add -f dist/", "release": "ncc build src/upload-artifact.ts && git add -f dist/",
"check-all": "concurrently \"npm:format-check\" \"npm:lint\" \"npm:test\" \"npm:build\"", "check-all": "concurrently \"npm:format-check\" \"npm:lint\" \"npm:test\" \"npm:build\"",
"format": "prettier --write **/*.ts", "format": "prettier --write .",
"format-check": "prettier --check **/*.ts", "format-check": "prettier --check .",
"lint": "eslint **/*.ts", "lint": "eslint .",
"test": "jest --testTimeout 10000" "test": "jest --testTimeout 10000"
}, },
"repository": { "repository": {

View file

@ -1,17 +1,17 @@
{ {
"compilerOptions": { "compilerOptions": {
"target": "es6", "target": "es6",
"module": "commonjs", "module": "commonjs",
"outDir": "./lib", "outDir": "./lib",
"rootDir": "./src", "rootDir": "./src",
"strict": true, "strict": true,
"noImplicitAny": false, "noImplicitAny": false,
"moduleResolution": "node", "moduleResolution": "node",
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"esModuleInterop": true, "esModuleInterop": true,
"declaration": false, "declaration": false,
"sourceMap": true, "sourceMap": true,
"lib": ["es6"] "lib": ["es6"]
}, },
"exclude": ["node_modules", "**/*.test.ts"] "exclude": ["node_modules", "**/*.test.ts"]
} }