Skip to content

Commit

Permalink
Add command release workflows (#37)
Browse files Browse the repository at this point in the history
* build(lib): add release workflows

* build(lib): add version bump

* build: adjust version match regex

* build(lib): only NPM publish without artifacts release
  • Loading branch information
parfeon authored Sep 25, 2023
1 parent 681c1f7 commit ae4463d
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 0 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/commands-handler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Commands processor

on:
issue_comment:
types: [created]
defaults:
run:
shell: bash

jobs:
process:
name: Process command
if: github.event.issue.pull_request && endsWith(github.repository, '-private') != true
runs-on: ubuntu-latest
steps:
- name: Check referred user
id: user-check
env:
CLEN_BOT: ${{ secrets.CLEN_BOT }}
run: echo "expected-user=${{ startsWith(github.event.comment.body, format('@{0} ', env.CLEN_BOT)) }}" >> $GITHUB_OUTPUT
- name: Regular comment
if: steps.user-check.outputs.expected-user != 'true'
run: echo -e "\033[38;2;19;181;255mThis is regular commit which should be ignored.\033[0m"
- name: Checkout repository
if: steps.user-check.outputs.expected-user == 'true'
uses: actions/checkout@v3
with:
token: ${{ secrets.GH_TOKEN }}
- name: Checkout release actions
if: steps.user-check.outputs.expected-user == 'true'
uses: actions/checkout@v3
with:
repository: pubnub/client-engineering-deployment-tools
ref: v1
token: ${{ secrets.GH_TOKEN }}
path: .github/.release/actions
- name: Process changelog entries
if: steps.user-check.outputs.expected-user == 'true'
uses: ./.github/.release/actions/actions/commands
with:
token: ${{ secrets.GH_TOKEN }}
listener: ${{ secrets.CLEN_BOT }}
jira-api-key: ${{ secrets.JIRA_API_KEY }}
52 changes: 52 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Automated product release

on:
pull_request:
branches: [master]
types: [closed]

jobs:
check-release:
name: Check release required
runs-on: ubuntu-latest
if: github.event.pull_request.merged && endsWith(github.repository, '-private') != true
outputs:
release: ${{ steps.check.outputs.ready }}
steps:
- name: Checkout actions
uses: actions/checkout@v3
with:
repository: pubnub/client-engineering-deployment-tools
ref: v1
token: ${{ secrets.GH_TOKEN }}
path: .github/.release/actions
- id: check
name: Check pre-release completed
uses: ./.github/.release/actions/actions/checks/release
with:
token: ${{ secrets.GH_TOKEN }}
publish:
name: Publish package
runs-on: ubuntu-latest
needs: check-release
if: needs.check-release.outputs.release == 'true'
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
# This should be the same as the one specified for on.pull_request.branches
ref: master
- name: Checkout actions
uses: actions/checkout@v3
with:
repository: pubnub/client-engineering-deployment-tools
ref: v1
token: ${{ secrets.GH_TOKEN }}
path: .github/.release/actions
- name: Publish to NPM
uses: ./.github/.release/actions/actions/services/npm
with:
token: ${{ secrets.GH_TOKEN }}
npm-token: ${{ secrets.NPM_TOKEN }}
check-ownership: false
actions: publish
10 changes: 10 additions & 0 deletions .github/workflows/release/versions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
".pubnub.yml": [{ "pattern": "^version: (v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?)$" }],
"lib/package.json": [
{
"pattern": "^\\s{2,}\"version\": \"(v?(\\d+\\.?){2,}([a-zA-Z0-9-]+(\\.?\\d+)?)?)\",$",
"clearedPrefix": true,
"clearedSuffix": false
}
]
}

0 comments on commit ae4463d

Please sign in to comment.