From 74773219fe6397e6de25be7a1a32183f32bc62d9 Mon Sep 17 00:00:00 2001 From: Charis Lam <26616127+charislam@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:18:53 -0500 Subject: [PATCH] test: test node packages --- .github/workflows/build.yml | 166 ++++++++++++++++++++++++++++ packages/supa-mdx-lint/package.json | 3 + packages/supa-mdx-lint/src/index.js | 2 + 3 files changed, 171 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d62941..5d84f89 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -197,3 +197,169 @@ jobs: name: artifact-npm-binary-distributions path: npm-binary-distributions/*/*.tgz if-no-files-found: "error" + + test-linux: + runs-on: ubuntu-latest + needs: [node, npm-distributions] + strategy: + fail-fast: false + matrix: + node-version: [18, 20, 22] + steps: + - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: ${{ matrix.node-version }} + - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: artifact-npm-binary-distributions + path: ./npm-binary-distributions + - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: artifact-pkg-node + path: ./node-pkg + - name: Create package.json + run: | + mkdir test + cd test + cat < package.json + { + "name": "test", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "lint": "supa-mdx-lint --version" + }, + "keywords": [], + "author": "", + "license": "ISC" + } + EOF + - name: Install test packages + working-directory: test + run: | + npm install ../npm-binary-distributions/linux-x64/*.tgz + npm install ../node-pkg/*.tgz + - name: Test lint script + working-directory: test + run: npm run lint + + test-macos: + runs-on: macos-latest + needs: [node, npm-distributions] + strategy: + fail-fast: false + matrix: + node-version: [18, 20, 22] + steps: + - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: ${{ matrix.node-version }} + - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: artifact-npm-binary-distributions + path: ./npm-binary-distributions + - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: artifact-pkg-node + path: ./node-pkg + - name: Create package.json + run: | + mkdir test + cd test + cat < package.json + { + "name": "test", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "lint": "supa-mdx-lint --version" + }, + "keywords": [], + "author": "", + "license": "ISC" + } + EOF + - name: Install test packages + working-directory: test + run: | + npm install ../npm-binary-distributions/darwin/*.tgz + npm install ../node-pkg/*.tgz + - name: Test lint script + working-directory: test + run: npm run lint + + test-windows: + runs-on: windows-latest + needs: [node, npm-distributions] + strategy: + fail-fast: false + matrix: + node-version: [18, 20, 22] + steps: + - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: ${{ matrix.node-version }} + - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: artifact-npm-binary-distributions + path: ./npm-binary-distributions + - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: artifact-pkg-node + path: ./node-pkg + - name: List root directory contents + shell: cmd + run: dir + - name: List npm-binary-distributions directory contents + shell: cmd + run: | + dir npm-binary-distributions + dir npm-binary-distributions\win32-x64 + - name: List node-pkg directory contents + shell: cmd + run: dir node-pkg + - name: Create package.json + shell: pwsh + run: | + mkdir test + cd test + $json = @" + { + "name": "test", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "lint": "supa-mdx-lint --version" + }, + "keywords": [], + "author": "", + "license": "ISC" + } + "@ + $json | Out-File -FilePath package.json -Encoding utf8 + - name: Unpack binary tarball + shell: pwsh + run: | + $tarballPath = Get-ChildItem -Path npm-binary-distributions\win32-x64\*.tgz | Select-Object -First 1 + tar -xzf $tarballPath.FullName -C npm-binary-distributions\win32-x64 + Get-ChildItem -Path npm-binary-distributions\win32-x64 + - name: Install binary + run: | + cd test + npm install ..\npm-binary-distributions\win32-x64 + - name: Unpack node-pkg tarball + shell: pwsh + run: | + $tarballPath = Get-ChildItem -Path node-pkg\*.tgz | Select-Object -First 1 + tar -xzf $tarballPath.FullName -C node-pkg + Get-ChildItem -Path node-pkg + - name: Install main package + run: | + cd test + npm install ..\node-pkg + - name: Test lint script + working-directory: test + run: npm run lint diff --git a/packages/supa-mdx-lint/package.json b/packages/supa-mdx-lint/package.json index 836ca4d..a23a885 100644 --- a/packages/supa-mdx-lint/package.json +++ b/packages/supa-mdx-lint/package.json @@ -2,6 +2,9 @@ "name": "@supabase/supa-mdx-lint", "version": "0.1.6-pre", "main": "src/index.js", + "bin": { + "supa-mdx-lint": "src/index.js" + }, "scripts": { "format": "prettier --write .", "format:check": "prettier --check .", diff --git a/packages/supa-mdx-lint/src/index.js b/packages/supa-mdx-lint/src/index.js index cfe630a..5b56243 100644 --- a/packages/supa-mdx-lint/src/index.js +++ b/packages/supa-mdx-lint/src/index.js @@ -1,3 +1,5 @@ +#!/usr/bin/env node + //@ ts-check "use strict";