Skip to content

Commit

Permalink
release: use lerna
Browse files Browse the repository at this point in the history
Signed-off-by: Berend Sliedrecht <[email protected]>
  • Loading branch information
berendsliedrecht committed Oct 4, 2024
1 parent 6a45212 commit 81e2282
Show file tree
Hide file tree
Showing 6 changed files with 2,639 additions and 1,405 deletions.
180 changes: 93 additions & 87 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,92 +1,98 @@
name: Continuous Deployment

on:
workflow_dispatch:
inputs:
releaseType:
description: The type of release. Should be one of "major", "minor", "patch"
required: true
default: 'patch'
pull_request:
branches:
- main

# Make sure we're not running multiple release steps at the same time as this can give issues with determining the next npm version to release.
# Ideally we only add this to the 'release' job so it doesn't limit PR runs, but github can't guarantee the job order in that case:
# "When concurrency is specified at the job level, order is not guaranteed for jobs or runs that queue within 5 minutes of each other."
concurrency:
group: react-native-ble-didcomm${{ github.ref }}-${{ github.repository }}-{{ github.event_name }}
cancel-in-progress: true
push:
branches: [main]

pull_request:
types: [opened, synchronize]

workflow_dispatch:
inputs:
release-type:
description: 'Type of release (major, minor, patch, alpha)'
required: true
default: alpha
type: choice
options:
- major
- minor
- patch
- alpha

jobs:
validate:
runs-on: ubuntu-20.04
name: Validate
steps:
- name: Checkout react-native-ble-didcomm
uses: actions/checkout@v4

- name: Setup node v20
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
with:
version: 9

- name: Install dependencies
run: pnpm install

- name: lint
run: pnpm check

- name: Check typescript
run: pnpm check:types
release:
runs-on: ubuntu-20.04
name: Release
needs: [validate]
# Only run on workflow dispatch to main branch
if: github.ref == 'refs/heads/main' && github.repository == 'animo/react-native-ble-didcomm' && github.event_name == 'workflow_dispatch'
steps:
- name: Checkout react-native-ble-didcomm
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: git config
run: |
git config user.name "@github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Setup node v20
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
with:
version: 9

- name: Install dependencies
run: pnpm install

- name: Set NPM config
run: |
echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN }}" >> .npmrc
echo "registry=https://registry.npmjs.org/" >> .npmrc
echo "always-auth=true" >> .npmrc
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build the library
working-directory: library
run: pnpm build

# On manual workflow dispatch release stable version
- name: Release version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
working-directory: library
run: pnpm release ${{ github.event.inputs.releaseType }}
continous-integration:
name: 'Continuous Integration'
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 9

- name: Install dependencies
run: pnpm install

- name: Check formatting
run: pnpm check

- name: Build
run: pnpm build

- name: Check types
run: pnpm check:types

continious-deployment:
if: github.event_name == 'workflow_dispatch'

name: 'Continous Deployment'
runs-on: ubuntu-latest
needs: ['continous-integration']

steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 9

- name: Install dependencies
run: pnpm install

- name: Build
run: pnpm build

- name: Initialise the NPM config
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN

- name: Publish
id: publish
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
echo ${{ inputs.release-type }}
git config --global user.email "[email protected]"
git config --global user.name "Animo Development"
if [ ${{ inputs.release-type }} == 'alpha' ]; then
pnpm release --pre-dist-tag alpha prerelease --yes
else
pnpm release ${{ inputs.release-type }} --force-publish --no-private --yes
fi
version=$(node -p "require('./lerna.json').version")
echo "LERNA_VERSION=$version" >> "$GITHUB_OUTPUT"
- name: Create Github Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
prerelease: ${{ inputs.release-type == 'alpha' }}
token: ${{ secrets.GH_TOKEN }}
tag_name: v${{ steps.publish.outputs.LERNA_VERSION }}
name: Release v${{ steps.publish.outputs.LERNA_VERSION }}
3 changes: 2 additions & 1 deletion example/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "bluetoothdidcommexample",
"version": "1.0.0",
"version": "0.0.0",
"private": true,
"main": "index.js",
"scripts": {
"issue": "ts-node scripts/issueCredential.ts",
Expand Down
6 changes: 6 additions & 0 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"npmClient": "pnpm",
"version": "0.1.0",
"exact": true,
"message": "chore(release): %s"
}
21 changes: 1 addition & 20 deletions library/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@
],
"scripts": {
"build": "pnpm compile",
"compile": "tsc -p tsconfig.build.json",
"release": "release-it"
"compile": "tsc -p tsconfig.build.json"
},
"repository": "https://github.com/animo/react-native-ble-didcomm",
"author": "Animo <[email protected]> (https://github.com/animo)",
Expand Down Expand Up @@ -52,24 +51,6 @@
"@types/react": "*",
"react": "*",
"react-native": "*",
"release-it": "^16.1.5",
"typescript": "*"
},
"release-it": {
"github": {
"release": true
},
"npm": {
"skipChecks": true,
"ignoreVersion": true,
"tag": "latest"
},
"git": {
"push": false,
"commit": false,
"requireCommits": true,
"tagAnnotation": "${version}",
"requireBranch": "main"
}
}
}
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@
"check:fix": "pnpm check --write",
"format:android": "ktlint -F ./android",
"format:ios": "swiftlint --fix ./ios",
"clean": "rimraf -rf **/build"
"clean": "rimraf -rf **/build",
"release": "lerna publish"
},
"devDependencies": {
"@biomejs/biome": "^1.9.1",
"lerna": "8.1.8",
"rimraf": "^5.0.1"
},
"pnpm": {
Expand Down
Loading

0 comments on commit 81e2282

Please sign in to comment.