Skip to content

Commit

Permalink
update the test configrations and the ci/cd
Browse files Browse the repository at this point in the history
  • Loading branch information
Eslam3bed committed Sep 22, 2024
1 parent cfc2d3d commit a3917ea
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 1 deletion.
68 changes: 68 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: CI/CD Pipeline

on:
push:
branches:
- main
release:
types: [published]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'

- name: Install dependencies
run: npm install

- name: Run tests
run: npm run test

- name: Build the package
run: npm run build

- name: Bump version and generate changelog
run: npm run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Commit changelog and version bump
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add .
git commit -m "chore(release): $(node -p -e "require('./package.json').version") [skip ci]"
git tag v$(node -p -e "require('./package.json').version")
- name: Push changes to main branch
run: git push --follow-tags
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish to npm
if: github.event_name == 'release' && github.event.action == 'published'
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Create a release on GitHub
uses: softprops/action-gh-release@v1
with:
files: dist/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Node.js CI

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x]

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm run ci
- name: Publish to npm
if: github.ref == 'refs/heads/main'
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
8 changes: 8 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,12 @@ module.exports = {
'\\.(css|scss)$': 'identity-obj-proxy',
},
setupFilesAfterEnv: ['<rootDir>/src/__test__/setupTests.ts'],
coverageThreshold: {
global: {
branches: 80,
functions: 80,
lines: 80,
statements: 80,
},
},
};
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
"module": "dist/index.esm.js",
"scripts": {
"build": "rollup -c ",
"test": "jest --watch "
"test": "jest --coverage",
"ci": "npm run build && npm run test",
"release": "standard-version"
},
"author": "",
"license": "ISC",
Expand All @@ -19,6 +21,7 @@
"@types/jest": "^29.5.13",
"jest": "^29.7.0",
"rollup-plugin-dts": "^6.1.1",
"standard-version": "^9.5.0",
"ts-jest": "^29.2.5"
},
"dependencies": {
Expand Down

0 comments on commit a3917ea

Please sign in to comment.