From ac3c9b51d5cb52f4add40e2fc2dcc5e970153afc Mon Sep 17 00:00:00 2001 From: Dragan Filipovic Date: Thu, 27 May 2021 22:56:27 +0200 Subject: [PATCH] feat: add semantic-release-action --- .github/workflows/build.yml | 14 ++++--- .github/workflows/codeql-analysis.yml | 45 ++++++++++++++++++++ .github/workflows/manual-release.yml | 43 +++++++++++++++++++ .github/workflows/release-test.yml | 20 --------- .github/workflows/release.yml | 60 ++++++++++++++++----------- .releaserc | 19 +++++++++ docs/CHANGELOG.md | 0 package.json | 4 +- 8 files changed, 153 insertions(+), 52 deletions(-) create mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .github/workflows/manual-release.yml delete mode 100644 .github/workflows/release-test.yml create mode 100644 .releaserc create mode 100644 docs/CHANGELOG.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e02ac96..7f0afd2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,11 +17,15 @@ jobs: node-version: [14.x] steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} + - name: Checkout + uses: actions/checkout@v2 + - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - run: npm ci - - run: npm run lint - - run: npm run build + - name: Install dependencies + run: npm ci + - name: Build Library + run: npm run build + - name: Run Tests + run: npm test --if-present diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..e275821 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -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 diff --git a/.github/workflows/manual-release.yml b/.github/workflows/manual-release.yml new file mode 100644 index 0000000..013368a --- /dev/null +++ b/.github/workflows/manual-release.yml @@ -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 diff --git a/.github/workflows/release-test.yml b/.github/workflows/release-test.yml deleted file mode 100644 index a3605e0..0000000 --- a/.github/workflows/release-test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: List tags -on: - workflow_dispatch: - inputs: - tag: - description: ' | 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 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f0995ea..6e661c5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,33 +1,43 @@ name: Release + on: - workflow_dispatch: - inputs: - tag: - description: ' | major | minor | patch' - required: true - default: 'patch' + push: + branches: + - main + jobs: - checkout: - name: checkout - runs-on: ubuntu-latest + 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 - - run: | - git config user.name github-actions - git config user.email github-actions@github.com - - name: Setup NodeJS and run build + - name: Setup Node.js uses: actions/setup-node@v1 with: - node-version: 12 - - run: | - npm ci - npm run lint - npm run build - - name: Setup version - if: ${{ github.event.inputs.tag != '' }} - run: | - npm version ${{ github.event.inputs.tag }} - git push - - name: Add tag - run: git tag -a v${{ github.event.inputs.tag }} -m "v${{ github.event.inputs.tag }}" + 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: false + 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 diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..8c36490 --- /dev/null +++ b/.releaserc @@ -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"] + } + ] + ] +} diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json index d09a5bd..44aee2a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ssh-deploy", "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", "dependencies": { "command-exists": "1.2.9", @@ -29,7 +29,7 @@ "rsync" ], "author": "Dragan Filipovic", - "license": "ISC", + "license": "MIT", "bugs": { "url": "https://github.com/easingthemes/ssh-deploy/issues" },