From 225432e76c417adc4829283b51c3f1a9dbe5f506 Mon Sep 17 00:00:00 2001 From: Radu-Cristian Popa Date: Fri, 19 Jan 2024 07:17:32 +0200 Subject: [PATCH] Update GitHub actions --- .github/labeler.yml | 11 ++- .github/workflows/pr-checks.yml | 41 +++++++++-- .github/workflows/release.yml | 10 +-- .github/workflows/sanity.yml | 38 ++++++++-- package.json | 8 +-- packages/server/package.json | 3 +- pnpm-lock.yaml | 124 ++++++++++++++++++++++++++++++++ 7 files changed, 209 insertions(+), 26 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 330791c3..f7f3f897 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,7 +1,12 @@ +'area: server': + - any: + - changed-files: + - any-glob-to-any-file: 'packages/server/src/**/*' + 'area: background': - any: - changed-files: - - any-glob-to-any-file: 'src/background/**/*' + - any-glob-to-any-file: 'packages/extension/src/background/**/*' 'area: ci': - any: @@ -11,12 +16,12 @@ 'area: content': - any: - changed-files: - - any-glob-to-any-file: 'src/content/**/*' + - any-glob-to-any-file: 'packages/extension/src/content/**/*' 'area: popup': - any: - changed-files: - - any-glob-to-any-file: 'src/popup/**/*' + - any-glob-to-any-file: 'packages/extension/src/popup/**/*' 'area: documentation': - any: diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 9e04e362..02edaad5 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -14,8 +14,8 @@ concurrency: # TODO(@raducristianpopa): add lint/format checks and tests jobs: - build: - name: Build + build-extension: + name: Build Extension strategy: fail-fast: false matrix: @@ -30,7 +30,7 @@ jobs: - name: Build shell: bash - run: pnpm build ${{ matrix.browser }} + run: pnpm extension build ${{ matrix.browser }} - name: Upload artifacts uses: actions/upload-artifact@v3.1.2 @@ -39,8 +39,8 @@ jobs: path: dist/${{ matrix.browser }}/${{ matrix.browser }}.zip if-no-files-found: error - test: - name: Test + test-extension: + name: Test Extension runs-on: ubuntu-22.04 steps: - name: Checkout repository @@ -50,4 +50,33 @@ jobs: uses: ./.github/actions/setup - name: Test - run: pnpm test:ci + run: pnpm extension test:ci + + build-server: + name: Build Server + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Environment setup + uses: ./.github/actions/setup + + - name: Build + shell: bash + run: pnpm wm-server build + + # TODO: add tests for server + # test-server: + # name: Test Server + # runs-on: ubuntu-22.04 + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + + # - name: Environment setup + # uses: ./.github/actions/setup + + # - name: Test + # shell: bash + # run: pnpm wm-server test:ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87f6f127..d3ada03a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,7 +39,7 @@ jobs: - name: Build shell: bash - run: pnpm build + run: pnpm extension build - name: Release uses: softprops/action-gh-release@v1 @@ -49,7 +49,7 @@ jobs: prerelease: false generate_release_notes: true files: | - ./dist/chrome/chrome.zip - ./dist/firefox/firefox.zip - ./dist/opera/opera.zip - ./dist/edge/edge.zip + ./packages/extension/dist/chrome/chrome.zip + ./packages/extension/dist/firefox/firefox.zip + ./packages/extension/dist/opera/opera.zip + ./packages/extension/dist/edge/edge.zip diff --git a/.github/workflows/sanity.yml b/.github/workflows/sanity.yml index 4eaf55d4..e8aeea55 100644 --- a/.github/workflows/sanity.yml +++ b/.github/workflows/sanity.yml @@ -8,7 +8,7 @@ on: # TODO(@raducristianpopa): add lint/format checks and tests jobs: - build: + build-extension: name: Build extension strategy: fail-fast: false @@ -24,10 +24,10 @@ jobs: - name: Build shell: bash - run: pnpm build ${{ matrix.browser}} + run: pnpm extension build ${{ matrix.browser}} - test: - name: Test + test-extension: + name: Test Extension runs-on: ubuntu-22.04 steps: - name: Checkout repository @@ -37,4 +37,32 @@ jobs: uses: ./.github/actions/setup - name: Test - run: pnpm test:ci + run: pnpm extension test:ci + + build-server: + name: Build Server + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Environment setup + uses: ./.github/actions/setup + + - name: Build + shell: bash + run: pnpm wm-server build + + # test-server: + # name: Test Server + # runs-on: ubuntu-22.04 + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + + # - name: Environment setup + # uses: ./.github/actions/setup + + # - name: Test + # shell: bash + # run: pnpm wm-server test:ci diff --git a/package.json b/package.json index 6a654273..a0da47b4 100644 --- a/package.json +++ b/package.json @@ -9,17 +9,13 @@ "license": "Apache-2.0", "author": "Interledger Tech Team ", "scripts": { - "analyze": "bash ./scripts/analyze.sh", - "build": "bash ./scripts/build.sh", - "dev": "bash ./scripts/dev.sh", + "extension": "pnpm --filter @interledger/wm-extension --", "lint": "concurrently \"lint:*\"", "lint:fix": "eslint --ext js,jsx,ts,tsx, src --fix", "lint:eslint": "eslint . --ext .js,.ts,.tsx --max-warnings 0 --ignore-path .gitignore", "lint:prettier": "prettier \"**/*.(md|json|yml)\" --ignore-path .gitignore --check", "lint:type": "tsc --noEmit", - "local-signatures": "pnpm tsx --watch ./local-signatures/index.ts", - "test": "jest --maxWorkers=2 --passWithNoTests", - "test:ci": "pnpm test -- --reporters=default --reporters=github-actions" + "wm-server": "pnpm --filter @interledger/wm-server --" }, "devDependencies": { "@testing-library/jest-dom": "^6.1.3", diff --git a/packages/server/package.json b/packages/server/package.json index 6010130b..8b67f0a8 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -24,7 +24,8 @@ "koa-bodyparser": "^4.4.1" }, "devDependencies": { + "@types/koa": "^2.14.0", + "@types/koa-bodyparser": "^4.3.12", "typescript": "^5.2.2" } - } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ffea2a9..3fe501fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -232,6 +232,12 @@ importers: specifier: ^4.4.1 version: 4.4.1 devDependencies: + '@types/koa': + specifier: ^2.14.0 + version: 2.14.0 + '@types/koa-bodyparser': + specifier: ^4.3.12 + version: 4.3.12 typescript: specifier: ^5.2.2 version: 5.3.3 @@ -1068,6 +1074,12 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true + /@types/accepts@1.3.7: + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + dependencies: + '@types/node': 20.10.4 + dev: true + /@types/aria-query@5.0.4: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} dev: true @@ -1101,6 +1113,13 @@ packages: '@babel/types': 7.23.5 dev: true + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.10.4 + dev: true + /@types/chrome@0.0.114: resolution: {integrity: sha512-i7qRr74IrxHtbnrZSKUuP5Uvd5EOKwlwJq/yp7+yTPihOXnPhNQO4Z5bqb1XTnrjdbUKEJicaVVbhcgtRijmLA==} dependencies: @@ -1115,6 +1134,25 @@ packages: '@types/har-format': 1.2.15 dev: true + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 20.10.4 + dev: true + + /@types/content-disposition@0.5.8: + resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} + dev: true + + /@types/cookies@0.7.10: + resolution: {integrity: sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ==} + dependencies: + '@types/connect': 3.4.38 + '@types/express': 4.17.21 + '@types/keygrip': 1.0.6 + '@types/node': 20.10.4 + dev: true + /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: @@ -1130,6 +1168,24 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + /@types/express-serve-static-core@4.17.41: + resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} + dependencies: + '@types/node': 20.10.4 + '@types/qs': 6.9.11 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: true + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.17.41 + '@types/qs': 6.9.11 + '@types/serve-static': 1.15.5 + dev: true + /@types/filesystem@0.0.35: resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==} dependencies: @@ -1165,6 +1221,14 @@ packages: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} dev: false + /@types/http-assert@1.5.5: + resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==} + dev: true + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true + /@types/inboxsdk@2.0.14: resolution: {integrity: sha512-1CDIc4ZwPBQtvtoZanPIS0apn+XipSyU1lFP8ytixGyybROhB3CnNN2ZxSzzB1klnx2P+herJNDaxOs6n3QTRw==} dev: true @@ -1207,6 +1271,43 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/keygrip@1.0.6: + resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + dev: true + + /@types/koa-bodyparser@4.3.12: + resolution: {integrity: sha512-hKMmRMVP889gPIdLZmmtou/BijaU1tHPyMNmcK7FAHAdATnRcGQQy78EqTTxLH1D4FTsrxIzklAQCso9oGoebQ==} + dependencies: + '@types/koa': 2.14.0 + dev: true + + /@types/koa-compose@3.2.8: + resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + dependencies: + '@types/koa': 2.14.0 + dev: true + + /@types/koa@2.14.0: + resolution: {integrity: sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==} + dependencies: + '@types/accepts': 1.3.7 + '@types/content-disposition': 0.5.8 + '@types/cookies': 0.7.10 + '@types/http-assert': 1.5.5 + '@types/http-errors': 2.0.4 + '@types/keygrip': 1.0.6 + '@types/koa-compose': 3.2.8 + '@types/node': 20.10.4 + dev: true + + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: true + + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + dev: true + /@types/minimatch@5.1.2: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: false @@ -1220,6 +1321,14 @@ packages: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} dev: true + /@types/qs@6.9.11: + resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + dev: true + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true + /@types/react-dom@18.2.17: resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} dependencies: @@ -1257,6 +1366,21 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.10.4 + dev: true + + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/mime': 3.0.4 + '@types/node': 20.10.4 + dev: true + /@types/source-list-map@0.1.6: resolution: {integrity: sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==}