Skip to content

Commit

Permalink
Merge pull request #65 from namecheap/feature/publish-package
Browse files Browse the repository at this point in the history
ci: publish npm package
  • Loading branch information
stas-nc authored Oct 23, 2024
2 parents e636912 + f83c243 commit 58ef889
Show file tree
Hide file tree
Showing 9 changed files with 12,376 additions and 5,080 deletions.
115 changes: 70 additions & 45 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,76 @@
name: CI

on:
push:
branches:
- master
tags-ignore:
- "**"
pull_request:
branches:
- "**"
push:
branches:
- master
tags-ignore:
- '**'
pull_request:
branches:
- '**'

jobs:
build:
name: Build
runs-on: ubuntu-latest
build:
name: Build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- if: github.event_name == 'pull_request'
name: Lint commit messages
run: npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose
- run: npm run format:check
- run: npm run lint
- run: npm run build
- run: npm run coverage
- if: matrix.node-version == '20.x'
uses: actions/upload-artifact@v4
with:
name: Code coverage
path: coverage/
- if: matrix.node-version == '20.x'
run: npm run docs
- if: matrix.node-version == '20.x'
uses: actions/upload-artifact@v4
with:
name: Documentation
path: docs/

strategy:
matrix:
node-version: [16.x, 18.x, 20.x]

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run format:check
- run: npm run lint
- run: npm run build
- run: npm run coverage
- if: matrix.node-version == '20.x'
uses: actions/upload-artifact@v3
with:
name: Code coverage
path: coverage/
- if: matrix.node-version == '20.x'
run: npm run docs
- if: matrix.node-version == '20.x'
uses: actions/upload-artifact@v3
with:
name: Documentation
path: docs/
- name: Deploy Docs
if: github.ref == 'refs/heads/master' && matrix.node-version == '20.x'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
publish:
name: 'Publish'
needs: build
runs-on: ubuntu-latest
environment: npm_publish
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/download-artifact@v4
with:
name: Documentation
path: docs/
- name: Deploy Docs
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Publish new version
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
1 change: 1 addition & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx --no -- commitlint --edit $1
3 changes: 3 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
npx lint-staged
npm run build
npm test
22 changes: 14 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# App development SDK for ILC

[![NPM package](https://badgen.net/npm/v/ilc-sdk?color=red&icon=npm&label=)](https://www.npmjs.com/package/ilc-sdk)
[![NPM downloads](https://badgen.net/npm/dt/ilc-sdk)](https://www.npmjs.com/package/ilc-sdk)

Expand All @@ -12,17 +13,22 @@ $ npm i ilc-sdk

## Documentation

* JS docs https://namecheap.github.io/ilc-sdk/
* Additional materials
* [ILC to App interface](https://namecheap.github.io/ilc-sdk/pages/Pages/ilc_app_interface.html)
* [ILC Global API](https://namecheap.github.io/ilc-sdk/pages/Pages/global_api.html)
* [Registry API](https://namecheap.github.io/ilc-sdk/pages/Pages/registry_api.html)
* [Public Path Problem](https://namecheap.github.io/ilc-sdk/pages/Pages/public_path.html)
- JS docs https://namecheap.github.io/ilc-sdk/
- Additional materials
- [ILC to App interface](https://namecheap.github.io/ilc-sdk/pages/Pages/ilc_app_interface.html)
- [ILC Global API](https://namecheap.github.io/ilc-sdk/pages/Pages/global_api.html)
- [Registry API](https://namecheap.github.io/ilc-sdk/pages/Pages/registry_api.html)
- [Public Path Problem](https://namecheap.github.io/ilc-sdk/pages/Pages/public_path.html)

## Node.js and App entrypoints

This package features 2 bundles that are intended to be used in Node.js app that runs SSR bundle of your app and
the application itself.

* Node.js server bundle - [documentation](https://namecheap.github.io/ilc-sdk/modules/server.html)
* Application bundle - [documentation](https://namecheap.github.io/ilc-sdk/modules/app.html)
- Node.js server bundle - [documentation](https://namecheap.github.io/ilc-sdk/modules/server.html)
- Application bundle - [documentation](https://namecheap.github.io/ilc-sdk/modules/app.html)

## Contribution

- Commit messages must follow the [conventional commits specification](https://www.conventionalcommits.org/en/v1.0.0/#specification)
- This library follows [semantic versioning](https://semver.org/)
6 changes: 6 additions & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/**
* @type {import('@commitlint/types').UserConfig}
*/
module.exports = {
extends: ['@commitlint/config-conventional'],
};
7 changes: 7 additions & 0 deletions lint-staged.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/**
* @type {import('lint-staged').Config}
*/
module.exports = {
'*': 'prettier --ignore-unknown --write',
'*.ts': 'npm run lint -- --fix',
};
Loading

0 comments on commit 58ef889

Please sign in to comment.