Skip to content

Commit

Permalink
ci: new pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
stas-nc committed Oct 21, 2024
1 parent 6238fcf commit d556d2c
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 56 deletions.
117 changes: 69 additions & 48 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,54 +1,75 @@
name: CI

on:
push:
branches:
- master
tags-ignore:
- "**"
pull_request:
branches:
- "**"
push:
branches:
- master
- feature/publish-package
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
- 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_BASE_REF --to $GITHUB_HEAD_REF
- 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@v4
- 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_BASE_REF --to $GITHUB_HEAD_REF
- 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/
- name: Deploy Docs
if: github.ref == 'refs/heads/master' && matrix.node-version == '20.x'
uses: peaceiris/actions-gh-pages@v4
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
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ilc-sdk",
"version": "5.2.1",
"version": "0.0.0",
"description": "SDK for app development with Isomorphic Layout Composer",
"main": "dist/server/index.js",
"types": "dist/server/index.d.ts",
Expand Down Expand Up @@ -76,6 +76,9 @@
"webpack-inject-plugin": "^1.5.5",
"wrapper-webpack-plugin": "^2.2.2"
},
"overrides": {
"conventional-changelog-conventionalcommits": ">= 8.0.0"
},
"engines": {
"npm": ">=7"
}
Expand Down
38 changes: 37 additions & 1 deletion release.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,42 @@
const preset = 'conventionalcommits';

/**
* semantic-release plugin to analyze commits with conventional-changelog
* https://github.com/semantic-release/commit-analyzer
*/
const commitAnalyzerConfig = {
preset,
};

/**
* semantic-release plugin to generate changelog content with conventional-changelog
* https://github.com/semantic-release/release-notes-generator
*/
const releaseNotesGeneratorConfig = {
preset,
};

/**
* semantic-release plugin to publish a GitHub release and comment on released Pull Requests/Issues.
* https://github.com/semantic-release/github
*/
const githubConfig = {
successComment: false,
failComment: false,
labels: false,
releasedLabels: false,
};

/**
* @type {import('semantic-release').GlobalConfig}
*/
module.exports = {
branches: ['master', 'feature/publish-package'],
branches: ['master'],
tagFormat: 'v${version}',
plugins: [
['@semantic-release/commit-analyzer', commitAnalyzerConfig],
['@semantic-release/release-notes-generator', releaseNotesGeneratorConfig],
['@semantic-release/npm'],
['@semantic-release/github', githubConfig],
],
};

0 comments on commit d556d2c

Please sign in to comment.