Skip to content

Commit

Permalink
feat(.github): introduce updated release strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
narekhovhannisyan committed May 15, 2024
1 parent 9008bda commit fbb6b87
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 27 deletions.
27 changes: 0 additions & 27 deletions .github/workflows/npm-publish-ci.yml

This file was deleted.

50 changes: 50 additions & 0 deletions .github/workflows/release-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Release commit
on:
release:
types: [published]
jobs:

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

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18

- name: Install dependencies
run: npm ci

- name: Run unit tests
run: npm test

create-release-commit:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: main

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
registry-url: https://registry.npmjs.org/

- name: Install dependencies
run: npm ci

- name: Initalize git user email
run: git config --global user.email "${{vars.RELEASE_USER_EMAIL}}"
- name: Initalize git user name
run: git config --global user.name "Release commit workflow"

- name: Init release commit
run: npm run release -- --ci ${{github.event.release.tag_name}}
env:
GITHUB_TOKEN: ${{secrets.github_token}}
56 changes: 56 additions & 0 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Release publish NPM
on:
push:
branches:
- release
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm ci
- run: npm test
publish-npm:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: main
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
registry-url: https://registry.npmjs.org/

- name: Install dependencies
run: npm ci
- name: Initalize git user email
run: git config --global user.email "${{env.RELEASE_USER_EMAIL}}"
- name: Initalize git user name
run: git config --global user.name "Release publish workflow"

- name: Initialize npm config
run: npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN
env:
NPM_TOKEN: ${{secrets.NPM_TOKEN}}
- name: Check if release is a pre-release
id: check_pre_release
run: echo "{name}=${{github.event.release.prerelease}}" >> $GITHUB_OUTPUT

- name: Publish to npm
if: steps.check_pre_release.outputs.is_pre_release == 'true'
run: npm publish --tag beta
env:
GITHUB_TOKEN: ${{secrets.github_token}}
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
- name: Publish to npm
if: steps.check_pre_release.outputs.is_pre_release != 'true'
run: npm publish
env:
GITHUB_TOKEN: ${{secrets.github_token}}
NODE_AUTH_TOKEN: ${{secrets.npm_token}}

0 comments on commit fbb6b87

Please sign in to comment.