diff --git a/.eslintrc.json b/.eslintrc.json index 4c959d70..afde092b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,19 +1,19 @@ { - "env": { "node": true, "jest": true }, - "parser": "@typescript-eslint/parser", - "parserOptions": { "ecmaVersion": 9, "sourceType": "module" }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:import/errors", - "plugin:import/warnings", - "plugin:import/typescript", - "plugin:prettier/recommended", - "prettier/@typescript-eslint" - ], - "rules": { - "@typescript-eslint/no-empty-function": "off" - }, - "plugins": ["@typescript-eslint", "jest"] -} \ No newline at end of file + "env": {"node": true, "jest": true}, + "parser": "@typescript-eslint/parser", + "parserOptions": {"ecmaVersion": 9, "sourceType": "module"}, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:import/errors", + "plugin:import/warnings", + "plugin:import/typescript", + "plugin:prettier/recommended", + "prettier/@typescript-eslint" + ], + "rules": { + "@typescript-eslint/no-empty-function": "off" + }, + "plugins": ["@typescript-eslint", "jest"] +} diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index c7dcfc13..65923e53 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -1,4 +1,4 @@ -name: "🐛 Bug report" +name: '🐛 Bug report' description: Let us know about a bug! labels: ['bug'] title: '[bug]' @@ -60,4 +60,4 @@ body: id: ghes attributes: label: Are you on GitHub Enterprise Server? If so, what version? - placeholder: vX.Y \ No newline at end of file + placeholder: vX.Y diff --git a/.github/ISSUE_TEMPLATE/documentation-issues.yml b/.github/ISSUE_TEMPLATE/documentation-issues.yml index f8fb1e0c..5b1cc5b7 100644 --- a/.github/ISSUE_TEMPLATE/documentation-issues.yml +++ b/.github/ISSUE_TEMPLATE/documentation-issues.yml @@ -1,4 +1,4 @@ -name: "📚 Documentation issues" +name: '📚 Documentation issues' description: Make a suggestion to improve the documentation! labels: ['documentation'] title: '[docs]' @@ -25,4 +25,4 @@ body: description: | Give as much detail as you can to help us understand the changes you want to see. validations: - required: true \ No newline at end of file + required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index 9be9655a..88c9222b 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -1,4 +1,4 @@ -name: "🎁 Feature request" +name: '🎁 Feature request' description: Suggest a new feature/enhancement! labels: ['enhancement'] title: '[feat req]' @@ -17,4 +17,4 @@ body: attributes: label: Why is this needed? validations: - required: true \ No newline at end of file + required: true diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4376f4c1..2a875724 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,8 +1,8 @@ -name: "Code scanning - action" +name: 'Code scanning - action' on: push: - branches-ignore: "dependabot/**" + branches-ignore: 'dependabot/**' pull_request: paths-ignore: - '**.md' @@ -11,36 +11,35 @@ on: jobs: CodeQL-Build: - # CodeQL runs on ubuntu-latest and windows-latest runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - 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). - # 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. - # 📚 https://git.io/JvXDl - - # ✏ī¸ 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 - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + 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). + # 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. + # 📚 https://git.io/JvXDl + + # ✏ī¸ 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 + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1d9caa72..8ef96d7c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,6 @@ on: - '**.md' jobs: - build: name: Build @@ -22,149 +21,149 @@ jobs: runs-on: ${{ matrix.runs-on }} steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Set Node.js 12.x - uses: actions/setup-node@v1 - with: - node-version: 12.x - - - name: Install dependencies - run: npm ci - - - name: Compile - run: npm run build - - - name: npm test - run: npm test - - - name: Lint - run: npm run lint - - - name: Format - run: npm run format-check - - # Test end-to-end by uploading two artifacts and then downloading them - - name: Create artifact files - run: | - mkdir -p path/to/dir-1 - mkdir -p path/to/dir-2 - mkdir -p path/to/dir-3 - 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 "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 - - name: 'Upload artifact #1' - uses: ./ - with: - name: 'Artifact-A' - path: path/to/dir-1/file1.txt - - # Upload using a wildcard pattern, name should default to 'artifact' if not provided - - name: 'Upload artifact #2' - uses: ./ - with: - path: path/**/dir*/ - - # Upload a directory that contains a file that will be uploaded with GZip - - name: 'Upload artifact #3' - uses: ./ - with: - name: 'GZip-Artifact' - path: path/to/dir-3/ - - # Upload a directory that contains a file that will be uploaded with GZip - - name: 'Upload artifact #4' - uses: ./ - with: - name: 'Multi-Path-Artifact' - path: | - path/to/dir-1/* - path/to/dir-[23]/* - !path/to/dir-3/*.txt - - # Verify artifacts. Switch to download-artifact@v2 once it's out of preview - - # Download Artifact #1 and verify the correctness of the content - - name: 'Download artifact #1' - uses: actions/download-artifact@v1 - with: - name: 'Artifact-A' - path: some/new/path - - - name: 'Verify Artifact #1' - run: | - $file = "some/new/path/file1.txt" - if(!(Test-Path -path $file)) - { - Write-Error "Expected file does not exist" - } - if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet")) - { - Write-Error "File contents of downloaded artifact are incorrect" - } - shell: pwsh - - # Download Artifact #2 and verify the correctness of the content - - name: 'Download artifact #2' - uses: actions/download-artifact@v1 - with: - name: 'artifact' - path: some/other/path - - - name: 'Verify Artifact #2' - run: | - $file1 = "some/other/path/to/dir-1/file1.txt" - $file2 = "some/other/path/to/dir-2/file2.txt" - if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) - { - 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 - - # 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 - - name: 'Verify Artifact #3' - run: | - $gzipFile = "gzip/artifact/path/gzip.txt" - 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: 'Download artifact #4' - uses: actions/download-artifact@v1 - with: - name: 'Multi-Path-Artifact' - path: multi/artifact - - - name: 'Verify Artifact #4' - run: | - $file1 = "multi/artifact/dir-1/file1.txt" - $file2 = "multi/artifact/dir-2/file2.txt" - if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) - { - 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 + - name: Checkout + uses: actions/checkout@v2 + + - name: Set Node.js 12.x + uses: actions/setup-node@v1 + with: + node-version: 12.x + + - name: Install dependencies + run: npm ci + + - name: Compile + run: npm run build + + - name: npm test + run: npm test + + - name: Lint + run: npm run lint + + - name: Format + run: npm run format-check + + # Test end-to-end by uploading two artifacts and then downloading them + - name: Create artifact files + run: | + mkdir -p path/to/dir-1 + mkdir -p path/to/dir-2 + mkdir -p path/to/dir-3 + 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 "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 + - name: 'Upload artifact #1' + uses: ./ + with: + name: 'Artifact-A' + path: path/to/dir-1/file1.txt + + # Upload using a wildcard pattern, name should default to 'artifact' if not provided + - name: 'Upload artifact #2' + uses: ./ + with: + path: path/**/dir*/ + + # Upload a directory that contains a file that will be uploaded with GZip + - name: 'Upload artifact #3' + uses: ./ + with: + name: 'GZip-Artifact' + path: path/to/dir-3/ + + # Upload a directory that contains a file that will be uploaded with GZip + - name: 'Upload artifact #4' + uses: ./ + with: + name: 'Multi-Path-Artifact' + path: | + path/to/dir-1/* + path/to/dir-[23]/* + !path/to/dir-3/*.txt + + # Verify artifacts. Switch to download-artifact@v2 once it's out of preview + + # Download Artifact #1 and verify the correctness of the content + - name: 'Download artifact #1' + uses: actions/download-artifact@v1 + with: + name: 'Artifact-A' + path: some/new/path + + - name: 'Verify Artifact #1' + run: | + $file = "some/new/path/file1.txt" + if(!(Test-Path -path $file)) + { + Write-Error "Expected file does not exist" + } + if(!((Get-Content $file) -ceq "Lorem ipsum dolor sit amet")) + { + Write-Error "File contents of downloaded artifact are incorrect" + } + shell: pwsh + + # Download Artifact #2 and verify the correctness of the content + - name: 'Download artifact #2' + uses: actions/download-artifact@v1 + with: + name: 'artifact' + path: some/other/path + + - name: 'Verify Artifact #2' + run: | + $file1 = "some/other/path/to/dir-1/file1.txt" + $file2 = "some/other/path/to/dir-2/file2.txt" + if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) + { + 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 + + # 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 + - name: 'Verify Artifact #3' + run: | + $gzipFile = "gzip/artifact/path/gzip.txt" + 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: 'Download artifact #4' + uses: actions/download-artifact@v1 + with: + name: 'Multi-Path-Artifact' + path: multi/artifact + + - name: 'Verify Artifact #4' + run: | + $file1 = "multi/artifact/dir-1/file1.txt" + $file2 = "multi/artifact/dir-2/file2.txt" + if(!(Test-Path -path $file1) -or !(Test-Path -path $file2)) + { + 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 diff --git a/.licensed.yml b/.licensed.yml index 0d6fe86b..6a1d846d 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -12,4 +12,4 @@ allowed: reviewed: npm: - - fs.realpath \ No newline at end of file + - fs.realpath diff --git a/.prettierignore b/.prettierignore index 21869472..154f191e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,4 @@ dist/ lib/ -node_modules/ \ No newline at end of file +node_modules/ +.licenses/ diff --git a/.prettierrc.json b/.prettierrc.json index bbf43114..c34bafcb 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,11 +1,10 @@ { - "printWidth": 80, - "tabWidth": 2, - "useTabs": false, - "semi": false, - "singleQuote": true, - "trailingComma": "none", - "bracketSpacing": false, - "arrowParens": "avoid", - "parser": "typescript" - } \ No newline at end of file + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": false, + "singleQuote": true, + "trailingComma": "none", + "bracketSpacing": false, + "arrowParens": "avoid" +} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 3a64696b..5f1b1c6a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,21 +14,21 @@ appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members 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 -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic 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 ## Our Responsibilities diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3269d1c0..d73d76a8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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` 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. +9. Push to your fork and [submit a pull request][pr] +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: diff --git a/README.md b/README.md index 95b85263..aedbf0cc 100644 --- a/README.md +++ b/README.md @@ -28,16 +28,16 @@ See [action.yml](action.yml) ```yaml steps: -- uses: actions/checkout@v2 + - uses: actions/checkout@v2 -- 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@v2 - with: - name: my-artifact - path: path/to/artifact/world.txt + - uses: actions/upload-artifact@v2 + with: + name: my-artifact + path: path/to/artifact/world.txt ``` ### Upload an Entire Directory @@ -149,31 +149,31 @@ With the following example, the available artifact (named `artifact` by default path: world.txt ``` -> **_Warning:_** Be careful when uploading to the same artifact via multiple jobs as artifacts may become corrupted +> **_Warning:_** Be careful when uploading to the same artifact via multiple jobs as artifacts may become corrupted 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 - strategy: - matrix: - node-version: [8.x, 10.x, 12.x, 13.x] - steps: - - name: Create a file - run: echo ${{ matrix.node-version }} > my_file.txt - - name: Accidently upload to the same artifact via multiple jobs - uses: actions/upload-artifact@v2 - with: - name: my-artifact - path: ${{ github.workspace }} +strategy: + matrix: + node-version: [8.x, 10.x, 12.x, 13.x] +steps: + - name: Create a file + run: echo ${{ matrix.node-version }} > my_file.txt + - name: Accidently upload to the same artifact via multiple jobs + uses: actions/upload-artifact@v2 + with: + name: my-artifact + path: ${{ github.workspace }} ``` 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 - uses: actions/upload-artifact@v2 - with: - name: my-artifact ${{ matrix.node-version }} - path: ${{ github.workspace }} +uses: actions/upload-artifact@v2 +with: + name: my-artifact ${{ matrix.node-version }} + path: ${{ github.workspace }} ``` ### Environment Variables and Tilde Expansion @@ -181,28 +181,28 @@ 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: ```yaml - - run: | - mkdir -p ~/new/artifact - echo hello > ~/new/artifact/world.txt - - uses: actions/upload-artifact@v2 - with: - name: Artifacts-V2 - path: ~/new/**/* +- run: | + mkdir -p ~/new/artifact + echo hello > ~/new/artifact/world.txt +- uses: actions/upload-artifact@v2 + with: + name: Artifacts-V2 + 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): ```yaml - env: - name: my-artifact - steps: - - run: | - mkdir -p ${{ github.workspace }}/artifact - echo hello > ${{ github.workspace }}/artifact/world.txt - - uses: actions/upload-artifact@v2 - with: - name: ${{ env.name }}-name - path: ${{ github.workspace }}/artifact/**/* +env: + name: my-artifact +steps: + - run: | + mkdir -p ${{ github.workspace }}/artifact + echo hello > ${{ github.workspace }}/artifact/world.txt + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.name }}-name + path: ${{ github.workspace }}/artifact/**/* ``` ### Retention Period @@ -210,15 +210,15 @@ Environment variables along with context expressions can also be used for input. Artifacts are retained for 90 days by default. You can specify a shorter retention period using the `retention-days` input: ```yaml - - name: Create a file - run: echo "I won't live long" > my_file.txt +- name: Create a file + run: echo "I won't live long" > my_file.txt - - name: Upload Artifact - uses: actions/upload-artifact@v2 - with: - name: my-artifact - path: my_file.txt - retention-days: 5 +- name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: my-artifact + path: my_file.txt + 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). @@ -252,14 +252,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: ```yaml - - name: Tar files - run: tar -cvf my_files.tar /path/to/my/directory +- 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 +- name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: my-artifact + path: my_files.tar ``` ### Too many uploads resulting in 429 responses diff --git a/action.yml b/action.yml index 2003cddc..0a27c912 100644 --- a/action.yml +++ b/action.yml @@ -1,7 +1,7 @@ name: 'Upload a Build Artifact' description: 'Upload a build artifact that can be used by subsequent workflow steps' author: 'GitHub' -inputs: +inputs: name: description: 'Artifact name' default: 'artifact' diff --git a/jest.config.js b/jest.config.js index aaa71f95..39b6cbb6 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,12 +1,12 @@ module.exports = { - clearMocks: true, - moduleFileExtensions: ['js', 'ts'], - roots: [''], - testEnvironment: 'node', - testMatch: ['**/*.test.ts'], - testRunner: 'jest-circus/runner', - transform: { - '^.+\\.ts$': 'ts-jest' - }, - verbose: true - } \ No newline at end of file + clearMocks: true, + moduleFileExtensions: ['js', 'ts'], + roots: [''], + testEnvironment: 'node', + testMatch: ['**/*.test.ts'], + testRunner: 'jest-circus/runner', + transform: { + '^.+\\.ts$': 'ts-jest' + }, + verbose: true +} diff --git a/package.json b/package.json index bd05cb7d..37df276f 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "build": "tsc", "release": "ncc build src/upload-artifact.ts && git add -f dist/", "check-all": "concurrently \"npm:format-check\" \"npm:lint\" \"npm:test\" \"npm:build\"", - "format": "prettier --write **/*.ts", - "format-check": "prettier --check **/*.ts", - "lint": "eslint **/*.ts", + "format": "prettier --write .", + "format-check": "prettier --check .", + "lint": "eslint .", "test": "jest --testTimeout 10000" }, "repository": { diff --git a/tsconfig.json b/tsconfig.json index bd4ee70e..48fd507d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,17 @@ { - "compilerOptions": { - "target": "es6", - "module": "commonjs", - "outDir": "./lib", - "rootDir": "./src", - "strict": true, - "noImplicitAny": false, - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "declaration": false, - "sourceMap": true, - "lib": ["es6"] - }, - "exclude": ["node_modules", "**/*.test.ts"] - } \ No newline at end of file + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "outDir": "./lib", + "rootDir": "./src", + "strict": true, + "noImplicitAny": false, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "declaration": false, + "sourceMap": true, + "lib": ["es6"] + }, + "exclude": ["node_modules", "**/*.test.ts"] +}