Skip to content

Commit

Permalink
ci: add new release process for DEV (#338)
Browse files Browse the repository at this point in the history
* ci: add new release process for DEV

Signed-off-by: Allain Magyar <[email protected]>

* ci: fix the build version and next release version

Signed-off-by: Yurii Shynbuiev <[email protected]>

* ci: fix the build version and next release version, delete helm chart

Signed-off-by: Yurii Shynbuiev <[email protected]>

---------

Signed-off-by: Allain Magyar <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
Co-authored-by: Yurii Shynbuiev <[email protected]>
  • Loading branch information
amagyar-iohk and yshyn-iohk committed Aug 21, 2024
1 parent 69f0124 commit 05479f6
Show file tree
Hide file tree
Showing 5 changed files with 136 additions and 129 deletions.
85 changes: 85 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Build and Publish Revision

concurrency:
group: release

on:
workflow_dispatch:
push:
branches:
- "main"
paths:
- "mediator/**"
- "*.sbt"
- "project/**"
- "webapp/**"

jobs:
build:
if: ${{ !contains(github.event.head_commit.message, 'chore(release)') }}
runs-on: ubuntu-latest
env:
GITHUB_ACTOR: "hyperledger-bot"
GITHUB_ACTOR_EMAIL: "[email protected]"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true
SBT_OPTS: -Xmx2G

permissions:
contents: write
packages: write

steps:
- uses: actions/checkout@v4

- name: Setup Java and Scala
uses: olafurpg/setup-scala@v14
with:
java-version: [email protected]

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

- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ env.GITHUB_ACTOR }}
password: ${{ env.GITHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Get short commit hash
run: echo "COMMIT_HASH=${GITHUB_SHA::7}" >> $GITHUB_ENV

- name: Set build number
run: echo "BUILD_NUMBER=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV

- name: Extract version from version.sbt
id: get_version
run: |
VERSION=$(grep -Eo 'version := "[^"]+"' version.sbt | sed 's/version := "//; s/"//; s/-SNAPSHOT//')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: Set build version
run: echo "BUILD_VERSION=${{ env.VERSION }}-${{ env.BUILD_NUMBER }}-${{ env.COMMIT_HASH }}" >> $GITHUB_ENV

- name: Build and push Docker image
run: |
sbt "set ThisBuild / version := \"${{ env.BUILD_VERSION }}\"" "docker:stage"
docker buildx build --platform=linux/arm64,linux/amd64 --push -t ghcr.io/hyperledger/identus-mediator:${{ env.BUILD_VERSION}} ./mediator/target/docker/stage
- name: Trigger helm chart update
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.ATALA_GITHUB_TOKEN }}
repository: input-output-hk/atala-prism-helm-charts
event-type: build-chart-package
client-payload: '{"version": "${{ env.BUILD_VERSION }}", "chart": "mediator"}'
33 changes: 5 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,25 @@ concurrency:
group: release

on:
workflow_call:
inputs:
release-branch:
required: false
type: string
default: "main"
workflow_dispatch:
inputs:
release-branch:
description: "Branch to release from"
required: false
default: "main"

permissions:
contents: write
packages: write

jobs:
release:
runs-on: ubuntu-latest
env:
GITHUB_ACTOR: "hyperledger-bot"
GITHUB_ACTOR_EMAIL: "[email protected]"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

runs-on: ubuntu-latest
permissions:
contents: write
packages: write

steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.IDENTUS_CI }}
ref: ${{ github.event.inputs.release-branch }}
fetch-depth: 0

- name: Setup Java and Scala
uses: olafurpg/setup-scala@v14
Expand All @@ -47,14 +34,6 @@ jobs:
with:
node-version: "lts/*"

- name: Setup Helm
uses: azure/setup-helm@v3
with:
version: "3.12.2" # default is latest (stable)

- name: Setup yq - portable yaml processor
uses: mikefarah/[email protected]

- name: Setup Scala.JS
uses: japgolly/setup-scalajs@v1

Expand Down Expand Up @@ -93,6 +72,4 @@ jobs:
GITHUB_TOKEN: ${{ secrets.IDENTUS_CI }}
run: |
npm install
sed -i 's/\( FIRST_RELEASE\) = "1.0.0"/\1 = "0.15.0"/' node_modules/semantic-release/lib/definitions/constants.js
sed -i 's/\( FIRSTPRERELEASE\) = "1"/\1 = "0"/' node_modules/semantic-release/lib/definitions/constants.js
npx semantic-release
100 changes: 0 additions & 100 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,105 +17,5 @@
"prettier": "^3.3.2",
"semantic-release": "^24.0.0",
"semantic-release-slack-bot": "^4.0.2"
},
"release": {
"branches": [
{
"name": "main"
},
{
"name": "prerelease/*",
"prerelease": "snapshot"
},
{
"name": "beta",
"prerelease": true
}
],
"tagFormat": "v${version}",
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/exec",
{
"prepareCmd": "npm version ${nextRelease.version} --git-tag-version false"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "NODE_OPTIONS=--openssl-legacy-provider sbt -J-Xmx5120m \"release release-version ${nextRelease.version} next-version ${nextRelease.version}-SNAPSHOT with-defaults\""
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "yq eval -i '.appVersion = \"${nextRelease.version}\" | .version = \"${nextRelease.version}\"' ./infrastructure/charts/mediator/Chart.yaml"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "helm package -d infrastructure/charts -u infrastructure/charts/mediator"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "helm repo index --url \"https://raw.githubusercontent.com/hyperledger/identus-mediator/main/infrastructure/charts\" --merge index.yaml infrastructure/charts"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "yq -i -P infrastructure/charts/index.yaml"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "yq -i '.appVersion = \"${nextRelease.version}\"' ./infrastructure/charts/mediator/Chart.yaml"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "docker buildx build --platform=linux/arm64,linux/amd64 --push -t ghcr.io/hyperledger/identus-mediator:${nextRelease.version} ./mediator/target/docker/stage"
}
],
[
"@semantic-release/changelog",
{
"changelogFile": "CHANGELOG.md"
}
],
[
"@semantic-release/git",
{
"assets": [
"version.sbt",
"CHANGELOG.md",
"package.json",
"package-lock.json",
"infrastructure/charts/mediator/Chart.yaml",
"infrastructure/charts/index.yaml",
"infrastructure/charts/*.tgz"
],
"message": "chore(release): cut mediator ${nextRelease.version} release\n\n${nextRelease.notes}\n\nSigned-off-by: Hyperledger Bot <[email protected]>"
}
],
[
"semantic-release-slack-bot",
{
"notifyOnSuccess": true,
"notifyOnFail": true,
"markdownReleaseNotes": true,
"onSuccessTemplate": {
"text": "A new version of Identus Mediator successfully released!\nVersion: `$npm_package_version`\nTag: $repo_url/releases/tag/v$npm_package_version\n\nRelease notes:\n$release_notes"
}
}
]
]
}
}
45 changes: 45 additions & 0 deletions release.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
export default {
branches: [
'main',
'+([0-9])?(.{+([0-9]),x}).x',
{ name: 'beta/*', prerelease: 'rc' }
],
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
["@semantic-release/changelog", {
"changelogFile": "CHANGELOG.md"
}],
["@semantic-release/exec", {
"prepareCmd": "echo ${nextRelease.version} > .release-version"
}],
["@semantic-release/exec", {
"prepareCmd": "npm version ${nextRelease.version} --git-tag-version false"
}],
["@semantic-release/exec", {
"prepareCmd": "NODE_OPTIONS=--openssl-legacy-provider sbt -J-Xmx5120m \"release release-version ${nextRelease.version} with-defaults\""
}],
["@semantic-release/exec", {
"prepareCmd": "docker buildx build --platform=linux/arm64,linux/amd64 --push -t ghcr.io/hyperledger/identus-mediator:${nextRelease.version} ./mediator/target/docker/stage"
}],
["@semantic-release/git", {
"assets": [
"version.sbt",
"CHANGELOG.md",
"DEPENDENCIES.md",
"package.json",
"package-lock.json",
],
"message": "chore(release): cut mediator ${nextRelease.version} release\n\n${nextRelease.notes}\n\nSigned-off-by: Hyperledger Bot <[email protected]>"
}],
["semantic-release-slack-bot", {
"notifyOnSuccess": true,
"notifyOnFail": true,
"markdownReleaseNotes": true,
"onSuccessTemplate": {
"text": "A new version of Identus Mediator successfully released!\nVersion: `$npm_package_version`\nTag: $repo_url/releases/tag/v$npm_package_version\n\nRelease notes:\n$release_notes"
}
}]
],
tagFormat: "v${version}"
}
2 changes: 1 addition & 1 deletion version.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ThisBuild / version := "0.15.0-SNAPSHOT"
ThisBuild / version := "0.16.0-SNAPSHOT"

0 comments on commit 05479f6

Please sign in to comment.