feat: add semantic-release-action

This commit is contained in:
Dragan Filipovic 2021-05-27 22:56:27 +02:00
parent a0be893c82
commit ac3c9b51d5
8 changed files with 153 additions and 52 deletions

View File

@ -17,11 +17,15 @@ jobs:
node-version: [14.x] node-version: [14.x]
steps: steps:
- uses: actions/checkout@v2 - name: Checkout
- name: Use Node.js ${{ matrix.node-version }} uses: actions/checkout@v2
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- run: npm ci - name: Install dependencies
- run: npm run lint run: npm ci
- run: npm run build - name: Build Library
run: npm run build
- name: Run Tests
run: npm test --if-present

45
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@ -0,0 +1,45 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
schedule:
- cron: '20 12 * * 0'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
steps:
- name: Checkout
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- run: npm run build --if-present
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

43
.github/workflows/manual-release.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Manual Release
on:
workflow_dispatch:
inputs:
dryrun:
description: 'DryRUn'
required: true
default: 'false'
jobs:
release:
name: Test, Build and Release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
node-version: [ 14.x ]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: ${{ matrix['node-version'] }}
- name: Install dependencies
run: npm ci
- name: Build Library
run: npm run build --if-present
- name: Run Tests
run: npm test --if-present
- name: Release
uses: cycjimmy/semantic-release-action@v2
with:
dry_run: ${{ github.event.inputs.dryrun == 'true' }}
extra_plugins: |
@semantic-release/changelog@3.0.0
@semantic-release/git
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_AUTHOR_NAME: github-actions
GIT_AUTHOR_EMAIL: github-actions@github.com
GIT_COMMITTER_NAME: github-actions
GIT_COMMITTER_EMAIL: github-actions@github.com
CI: true

View File

@ -1,20 +0,0 @@
name: List tags
on:
workflow_dispatch:
inputs:
tag:
description: '<newversion> | major | minor | patch'
required: true
default: 'patch'
jobs:
checkout:
name: checkout
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- run: |
git config user.name github-actions
git config user.email github-actions@github.com
- name: List tags
run: git tag -l

View File

@ -1,33 +1,43 @@
name: Release name: Release
on: on:
workflow_dispatch: push:
inputs: branches:
tag: - main
description: '<newversion> | major | minor | patch'
required: true
default: 'patch'
jobs: jobs:
checkout: release:
name: checkout name: Test, Build and Release
runs-on: ubuntu-latest runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
node-version: [ 14.x ]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
- run: | - name: Setup Node.js
git config user.name github-actions
git config user.email github-actions@github.com
- name: Setup NodeJS and run build
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
node-version: 12 node-version: ${{ matrix['node-version'] }}
- run: | - name: Install dependencies
npm ci run: npm ci
npm run lint - name: Build Library
npm run build run: npm run build --if-present
- name: Setup version - name: Run Tests
if: ${{ github.event.inputs.tag != '' }} run: npm test --if-present
run: | - name: Release
npm version ${{ github.event.inputs.tag }} uses: cycjimmy/semantic-release-action@v2
git push with:
- name: Add tag dry_run: false
run: git tag -a v${{ github.event.inputs.tag }} -m "v${{ github.event.inputs.tag }}" extra_plugins: |
@semantic-release/changelog@3.0.0
@semantic-release/git
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_AUTHOR_NAME: github-actions
GIT_AUTHOR_EMAIL: github-actions@github.com
GIT_COMMITTER_NAME: github-actions
GIT_COMMITTER_EMAIL: github-actions@github.com
CI: true

19
.releaserc Normal file
View File

@ -0,0 +1,19 @@
{
"branches": ["main"],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/changelog",
{
"changelogFile": "docs/CHANGELOG.md"
}
],
[
"@semantic-release/git",
{
"assets": ["docs/CHANGELOG.md"]
}
]
]
}

0
docs/CHANGELOG.md Normal file
View File

View File

@ -1,7 +1,7 @@
{ {
"name": "ssh-deploy", "name": "ssh-deploy",
"version": "2.1.9", "version": "2.1.9",
"description": "This GitHub Action deploys specific directory from `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh.", "description": "Fast NodeJS action to deploy specific directory from `GITHUB_WORKSPACE` to a server via rsync over ssh.",
"main": "src/index.js", "main": "src/index.js",
"dependencies": { "dependencies": {
"command-exists": "1.2.9", "command-exists": "1.2.9",
@ -29,7 +29,7 @@
"rsync" "rsync"
], ],
"author": "Dragan Filipovic", "author": "Dragan Filipovic",
"license": "ISC", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/easingthemes/ssh-deploy/issues" "url": "https://github.com/easingthemes/ssh-deploy/issues"
}, },