Skip to content

Merge pull request #48 from dany-fedorov/dependabot/npm_and_yarn/esli… #190

Merge pull request #48 from dany-fedorov/dependabot/npm_and_yarn/esli…

Merge pull request #48 from dany-fedorov/dependabot/npm_and_yarn/esli… #190

name: Run Tests and npm publish
on:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Install dependencies - node_modules cache
id: node_modules_cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies - npm install-clean
if: steps.node_modules_cache.outputs.cache-hit == false
run: npm install-clean
- name: Run tests
run: npm run test-ci
- name: Upload tests coverage
uses: actions/upload-artifact@master
with:
name: tests-coverage
path: coverage
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Install dependencies - node_modules cache
id: node_modules_cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies - npm install-clean
if: steps.node_modules_cache.outputs.cache-hit == false
run: npm install-clean
- name: Build
run: npm run prepublish-me
- name: Upload build
uses: actions/upload-artifact@master
with:
name: npm-module-build
path: npm-module-build
gen_docs:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Install dependencies - node_modules cache
id: node_modules_cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies - npm install-clean
if: steps.node_modules_cache.outputs.cache-hit == false
run: npm install-clean
- name: Generate docs
run: npx typedoc src/index.ts
- name: Upload docs
uses: actions/upload-artifact@master
with:
name: docs
path: docs
release:
runs-on: ubuntu-latest
needs: [ test, build, gen_docs ]
steps:
- name: Check out repository code
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies - node_modules cache
id: node_modules_cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies - npm install-clean
if: steps.node_modules_cache.outputs.cache-hit == false
run: npm install-clean
- name: Download docs
uses: actions/download-artifact@master
with:
name: docs
path: docs
- name: Download tests coverage
uses: actions/download-artifact@master
with:
name: tests-coverage
path: coverage
- name: Download build
uses: actions/download-artifact@master
with:
name: npm-module-build
path: npm-module-build
- name: Generate tests coverage badges and commit
uses: "jpb06/jest-badges-action@latest"
with:
branches: main
coverage-summary-path: ./coverage/coverage-summary.json
commit-message: "chore: Update tests coverage badges [skip ci]"
commit-user: github-actions[bot]
commit-user-email: github-actions[bot]@users.noreply.github.com
- name: Commit docs
uses: EndBug/add-and-commit@v9
with:
add: 'docs'
author_name: github-actions[bot]
author_email: github-actions[bot]@users.noreply.github.com
message: 'chore: Update docs [skip ci]'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release