Create devcontainer for codespaces + update all dev dependencies (#375)

* Create devcontainer for codespaces

* Use node 16 for devcontainer and CI

* Fix node version incompatibility error

* Remove caching

* Add npm build to check-dist

* Remove new caching

* use npm install

* Test node 14

* Update check dist with node 16

* Use node 18.x for check-dist

* Npm install vs CI

* Update package.json scripts

* test

* Remove caching

* npm run test

* testing

* test

* test

* One more test

* Test

* test

* Update everything

* use vercel

* Test

* Update index.js

* Test

* Remove codeql warnings

* Use NPM CI vs install

* Small tweaks to existing workflows
This commit is contained in:
Konrad Pabjan 2023-01-05 16:27:11 -05:00 committed by GitHub
parent 055b8b3f04
commit 013d2b89ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 15839 additions and 19289 deletions

@ -0,0 +1,6 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
{
"name": "@actions/upload-artifact",
"image": "mcr.microsoft.com/devcontainers/typescript-node:0-16"
}

@ -4,13 +4,10 @@
"parserOptions": { "ecmaVersion": 9, "sourceType": "module" }, "parserOptions": { "ecmaVersion": 9, "sourceType": "module" },
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/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"
], ],
"rules": { "rules": {
"@typescript-eslint/no-empty-function": "off" "@typescript-eslint/no-empty-function": "off"

@ -20,12 +20,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- name: Set Node.js 12.x - name: Setup Node 16
uses: actions/setup-node@v1 uses: actions/setup-node@v3
with: with:
node-version: 12.x node-version: 16.x
cache: 'npm'
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@ -33,6 +34,9 @@ jobs:
- name: Move the committed index.js file - name: Move the committed index.js file
run: mv dist/index.js /tmp run: mv dist/index.js /tmp
- name: Rebuild with tsc
run: npm run build
- name: Rebuild the index.js file - name: Rebuild the index.js file
run: npm run release run: npm run release
@ -41,7 +45,7 @@ jobs:
id: diff id: diff
# If index.js was different than expected, upload the expected version as an artifact # If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v3
if: ${{ failure() && steps.diff.conclusion == 'failure' }} if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with: with:
name: index.js name: index.js

@ -21,7 +21,7 @@ jobs:
# 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@v2
# Override language selection by uncommenting this and choosing your languages # Override language selection by uncommenting this and choosing your languages
# with: # with:
# languages: go, javascript, csharp, python, cpp, java # languages: go, javascript, csharp, python, cpp, java
@ -29,7 +29,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or 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) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v1 uses: github/codeql-action/autobuild@v2
# 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
@ -43,4 +43,4 @@ jobs:
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1 uses: github/codeql-action/analyze@v2

@ -25,10 +25,11 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Set Node.js 12.x - name: Setup Node 16
uses: actions/setup-node@v1 uses: actions/setup-node@v3
with: with:
node-version: 12.x node-version: 16.x
cache: 'npm'
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@ -36,15 +37,15 @@ jobs:
- name: Compile - name: Compile
run: npm run build run: npm run build
- name: 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
- name: Test
run: npm run test
# 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: |

18087
dist/index.js vendored

File diff suppressed because it is too large Load Diff

16962
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -35,19 +35,19 @@
"@actions/io": "^1.1.2" "@actions/io": "^1.1.2"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^25.2.1", "@types/jest": "^29.2.5",
"@types/node": "^13.11.1", "@types/node": "^18.11.18",
"@typescript-eslint/parser": "^2.27.0", "@typescript-eslint/parser": "^5.48.0",
"@zeit/ncc": "^0.22.1", "@vercel/ncc": "^0.36.0",
"concurrently": "^5.1.0", "concurrently": "^7.6.0",
"eslint": "^7.4.0", "eslint": "^8.31.0",
"eslint-plugin-github": "^4.1.1", "eslint-plugin-github": "^4.6.0",
"eslint-plugin-jest": "^23.8.2", "eslint-plugin-jest": "^27.2.0",
"glob": "^7.1.6", "glob": "^8.0.3",
"jest": "^27.2.5", "jest": "^29.3.1",
"jest-circus": "^27.2.5", "jest-circus": "^29.3.1",
"prettier": "^2.0.4", "prettier": "^2.8.1",
"ts-jest": "^27.0.6", "ts-jest": "^29.0.3",
"typescript": "^3.8.3" "typescript": "^4.9.4"
} }
} }

@ -1,3 +1,4 @@
/* eslint-disable no-unused-vars */
export enum Inputs { export enum Inputs {
Name = 'name', Name = 'name',
Path = 'path', Path = 'path',

@ -68,8 +68,8 @@ async function run(): Promise<void> {
) )
} }
} }
} catch (err) { } catch (error) {
core.setFailed(err.message) core.setFailed((error as Error).message)
} }
} }