Skip to content

Commit

Permalink
ci(semantic-release): adds support for publish packages to npm
Browse files Browse the repository at this point in the history
Adds support for publishing automatically the library's package to npm using semantic-release and commitizen.
  • Loading branch information
JoaoTMDias committed Feb 24, 2024
1 parent df35f88 commit 85ee1eb
Show file tree
Hide file tree
Showing 7 changed files with 12,947 additions and 7,253 deletions.
82 changes: 62 additions & 20 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,74 @@
name: CI
on: [push]
on: [push, pull_request]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
jobs:
build:
name: Build, lint, and test on Node ${{ matrix.node }} and ${{ matrix.os }}

quality:
name: Unit, component and e2e tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
node: ["18.x", "20.x"]
node-version: [18.x, 20.x]
os: [ubuntu-latest]

steps:
- name: Checkout repo
uses: actions/checkout@v2

- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v1
- uses: actions/checkout@v3
- name: Using node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm ci
- run: npm run test:ci

- name: Install deps and build (with cache)
uses: bahmutov/npm-install@v1
docs:
name: Deploy documentation
if: ${{ github.ref == 'refs/heads/main' }}
needs: [quality]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"

- name: Lint
run: npm run lint
- name: Building docs...
run: npm ci
- name: Build website
run: npm run docs:build

- name: Test Components
run: npm run test:ci
# Popular action to deploy to GitHub Pages:
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
- name: Deploying docs...
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Build output to publish to the `gh-pages` branch:
publish_dir: ./documentation/build
# The following lines assign commit authorship to the official
# GH-Actions bot for deploys to `gh-pages` branch:
# https://github.com/actions/checkout/issues/13#issuecomment-724415212
# The GH actions bot is used by default if you didn't specify the two fields.
# You can swap them out with your own user credentials.
user_name: github-actions[bot]
user_email: 41898282+github-actions[bot]@users.noreply.github.com

- name: Build
run: npm run build
package_release:
name: Publish to npm
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
needs: [quality]
strategy:
matrix:
node-version: 18
steps:
- uses: actions/checkout@v3
- name: Using node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm ci
- run: npm run build
- run: npm run semantic-release
7 changes: 6 additions & 1 deletion .github/workflows/size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ name: size
on: [pull_request]
jobs:
size:
runs-on: ubuntu-latest
name: Checking bundle size
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: 18
os: [ubuntu-latest]
env:
CI_JOB_NUMBER: 1
steps:
Expand Down
31 changes: 31 additions & 0 deletions .releaserc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"branches": [
"main",
{
"name": "next",
"prerelease": true
}
],
"debug": true,
"ci": true,
"dryRun": false,
"plugins": [
["@semantic-release/commit-analyzer"],
["@semantic-release/release-notes-generator"],
[
"@semantic-release/changelog",
{
"changelogFile": "CHANGELOG.md"
}
],
"@semantic-release/npm",
"@semantic-release/github",
[
"@semantic-release/git",
{
"assets": ["package.json", "package-lock.json", "./CHANGELOG.md"],
"message": "chore(release): set `package.json` to ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}
Empty file added CHANGELOG.md
Empty file.
5 changes: 5 additions & 0 deletions commitlint.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const COMMITLINT_CONFIG = {
extends: ["@commitlint/config-conventional"],
};

module.exports = COMMITLINT_CONFIG;
Loading

0 comments on commit 85ee1eb

Please sign in to comment.