Skip to content

Commit

Permalink
ci(semantic-release): adds support for publish packages to npm (#25)
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 authored Feb 26, 2024
1 parent df35f88 commit 702460b
Show file tree
Hide file tree
Showing 7 changed files with 12,764 additions and 7,201 deletions.
87 changes: 62 additions & 25 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,69 @@
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"]
os: [ubuntu-latest]

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 }}

- name: Install deps and build (with cache)
uses: bahmutov/npm-install@v1

- name: Lint
run: npm run lint

- name: Test Components
run: npm run test:ci

- name: Build
run: npm run build
node-version: ${{ matrix.node-version }}
cache: npm
- run: npm ci
- run: npm run test:ci
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.x"
cache: npm
- name: Building docs...
run: npm ci
- name: Build website
run: npm run docs:build
- name: Deploying docs...
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./documentation/build
user_name: github-actions[bot]
user_email: 41898282+github-actions[bot]@users.noreply.github.com
package_release:
name: Publish to npm
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
needs:
- quality
strategy:
matrix:
node-version: ["20.x"]
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.x"]
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 702460b

Please sign in to comment.