From 77e95e2781a46ab0b497d21c00abafc7bab73379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1sztor=20D=C3=A1niel?= Date: Thu, 31 Oct 2024 10:57:37 +0100 Subject: [PATCH] Publish web component to npm --- .github/workflows/npm-publish.yml | 40 +++++++++++++++++++++++++++++++ npm-package/package.json | 6 +++++ package-lock.json | 14 +++++------ package.json | 2 +- vite.config.webcomponent.ts | 5 +++- 5 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/npm-publish.yml create mode 100644 npm-package/package.json diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..4d6c12b --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,40 @@ +name: Create Node.js Package + +"on": + push: + branches: + - "prod" + - "main" +jobs: + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: "18.16.1" + - run: npm i + - run: npm run test + build: + needs: unit-tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: "18.16.1" + - name: Create public env file + run: | + echo $(git log -5) + touch .env + echo PUBLIC_COMMIT_HASH=$(git log --format="%h" -n 1) >> .env + echo PUBLIC_APP_ENV=production >> .env + echo PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.PUBLIC_GOOGLE_CLIENT_ID_PROD }} >> .env + echo PUBLIC_CREATION_DATE=$(git log --format="%cd" --date=format:'%Y-%m-%d' -1) >> .env + - run: npm ci && npm run build:webcomponent + env: + WEB_COMPONENT_NAME: profile-cloud-offline + - run: cd ./npm-package && npm version $(date +1.%Y%m%d.%-H%M) --no-git-tag-version + - run: cd ./npm-package && npm i && npm publish --access public + env: + NODE_AUTH_TOKEN: ${{secrets.npm_token}} \ No newline at end of file diff --git a/npm-package/package.json b/npm-package/package.json new file mode 100644 index 0000000..ecefb4d --- /dev/null +++ b/npm-package/package.json @@ -0,0 +1,6 @@ +{ + "name": "@intechstudio/profile-cloud-webcomponent", + "version": "0.0.1", + "type": "module", + "main": "dist/components.js" +} diff --git a/package-lock.json b/package-lock.json index 98bbe54..14e9e7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "profile-cloud", "version": "0.0.1", "dependencies": { - "@intechstudio/grid-protocol": "1.20240916.1230", + "@intechstudio/grid-protocol": "1.20241030.1609", "@intechstudio/grid-uikit": "1.20241017.2206", "@melt-ui/svelte": "^0.83.0", "@toast-ui/editor": "^3.2.2", @@ -1098,9 +1098,9 @@ "dev": true }, "node_modules/@intechstudio/grid-protocol": { - "version": "1.20240916.1230", - "resolved": "https://registry.npmjs.org/@intechstudio/grid-protocol/-/grid-protocol-1.20240916.1230.tgz", - "integrity": "sha512-vLFo2cBwa1a76SNHY7V+V7XlgWxtRWf/K5/7RX45uw9RjuIYqFqegE5T8InJa5qJAcV8+ktsqpL4kPjb7q9xPg==" + "version": "1.20241030.1609", + "resolved": "https://registry.npmjs.org/@intechstudio/grid-protocol/-/grid-protocol-1.20241030.1609.tgz", + "integrity": "sha512-m9j1P4plcXYtFOKNmPj1aO6UZEnSHB3VpO7SJP5Be38vB1EhOf07sXP6/nQqW5ZFJjkK7cVN8KESQxXQVlyKpQ==" }, "node_modules/@intechstudio/grid-uikit": { "version": "1.20241017.2206", @@ -6526,9 +6526,9 @@ "dev": true }, "@intechstudio/grid-protocol": { - "version": "1.20240916.1230", - "resolved": "https://registry.npmjs.org/@intechstudio/grid-protocol/-/grid-protocol-1.20240916.1230.tgz", - "integrity": "sha512-vLFo2cBwa1a76SNHY7V+V7XlgWxtRWf/K5/7RX45uw9RjuIYqFqegE5T8InJa5qJAcV8+ktsqpL4kPjb7q9xPg==" + "version": "1.20241030.1609", + "resolved": "https://registry.npmjs.org/@intechstudio/grid-protocol/-/grid-protocol-1.20241030.1609.tgz", + "integrity": "sha512-m9j1P4plcXYtFOKNmPj1aO6UZEnSHB3VpO7SJP5Be38vB1EhOf07sXP6/nQqW5ZFJjkK7cVN8KESQxXQVlyKpQ==" }, "@intechstudio/grid-uikit": { "version": "1.20241017.2206", diff --git a/package.json b/package.json index d731164..2e736e7 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ }, "type": "module", "dependencies": { - "@intechstudio/grid-protocol": "1.20240916.1230", + "@intechstudio/grid-protocol": "1.20241030.1609", "@intechstudio/grid-uikit": "1.20241017.2206", "@melt-ui/svelte": "^0.83.0", "@toast-ui/editor": "^3.2.2", diff --git a/vite.config.webcomponent.ts b/vite.config.webcomponent.ts index a44ef7c..dda64f2 100644 --- a/vite.config.webcomponent.ts +++ b/vite.config.webcomponent.ts @@ -25,7 +25,10 @@ export default defineConfig({ name: "<>", fileName: "components" }, - outDir: "public/wc" + outDir: + process.env.WEB_COMPONENT_NAME == "profile-cloud-offline" + ? "npm-package/dist" + : "public/wc" }, envPrefix: "PUBLIC_" });