Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add gleequore package and adapters #849

Merged
merged 13 commits into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/fifty-camels-wink.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@asyncapi/gleequore": minor
---

Initial release
11 changes: 11 additions & 0 deletions .changeset/tasty-needles-serve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"@asyncapi/glee-redis-cluster-adapter": minor
"@asyncapi/glee-web-server-adapter": minor
"@asyncapi/glee-socketio-adapter": minor
"@asyncapi/glee-kafka-adapter": minor
"@asyncapi/glee-mqtt-adapter": minor
"@asyncapi/glee-shared-utils": minor
"@asyncapi/glee-web-adapter": minor
---

Initial release of adapters and shared utils library
129 changes: 129 additions & 0 deletions .github/workflows/release-with-changesets.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# It does magic only if there is a package.json file in the root of the project
name: Release - if Node project

on:
push:
branches:
- master

jobs:
test-nodejs:
# We just check the message of the first commit as there is always just one commit because we squash into one before merging
# "commits" contains an array of objects where one of the properties is the commit "message"
# Release workflow will be skipped if release conventional commits are not used
if: |
startsWith( github.repository, 'asyncapi/' )
name: Test NodeJS release on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# Using macos-13 instead of latest (macos-14) due to an issue with Puppeteer and such runner.
# See: https://github.com/puppeteer/puppeteer/issues/12327 and https://github.com/asyncapi/parser-js/issues/1001
os: [ubuntu-latest, macos-13, windows-latest]
steps:
- name: Set git to use LF # To once and for all finish the never-ending fight between Unix and Windows
run: |
git config --global core.autocrlf false
git config --global core.eol lf
shell: bash
- name: Checkout repository
uses: actions/checkout@v4
- name: Check if Node.js project and has package.json
id: packagejson
run: test -e ./package.json && echo "exists=true" >> $GITHUB_OUTPUT || echo "exists=false" >> $GITHUB_OUTPUT
shell: bash
- if: steps.packagejson.outputs.exists == 'true'
name: Check package-lock version
uses: asyncapi/.github/.github/actions/get-node-version-from-package-lock@master
id: lockversion
- if: steps.packagejson.outputs.exists == 'true'
name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "${{ steps.lockversion.outputs.version }}"
- if: steps.lockversion.outputs.version == '18' && matrix.os == 'windows-latest'
name: Install npm cli 8
shell: bash
# npm cli 10 is buggy because of some cache issues
run: npm install -g [email protected]
- if: steps.packagejson.outputs.exists == 'true'
name: Install dependencies
shell: bash
run: npm ci
- if: steps.packagejson.outputs.exists == 'true'
name: Run test
run: npm test --if-present
- if: failure() # Only, on failure, send a message on the 94_bot-failing-ci slack channel
name: Report workflow run status to Slack
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
fields: repo,action,workflow
text: "Release workflow failed in testing job"
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CI_FAIL_NOTIFY }}

release:
needs: [test-nodejs]
name: Publish to any of NPM, GitHub, or Docker Hub
runs-on: ubuntu-latest
steps:
- name: Set git to use LF # To once and for all finish the never-ending fight between Unix and Windows
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checkout repository
uses: actions/checkout@v4
- name: Check if Node.js project and has package.json
id: packagejson
run: test -e ./package.json && echo "exists=true" >> $GITHUB_OUTPUT || echo "exists=false" >> $GITHUB_OUTPUT
shell: bash
- if: steps.packagejson.outputs.exists == 'true'
name: Check package-lock version
uses: asyncapi/.github/.github/actions/get-node-version-from-package-lock@master
id: lockversion
- if: steps.packagejson.outputs.exists == 'true'
name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "${{ steps.lockversion.outputs.version }}"
- if: steps.packagejson.outputs.exists == 'true'
name: Install dependencies
shell: bash
run: npm ci
- if: steps.packagejson.outputs.exists == 'true'
name: Build dependency
shell: bash
run: npm run build
- if: steps.packagejson.outputs.exists == 'true'
name: Install changelog
shell: bash
run: npm install @changesets/[email protected]
- if: steps.packagejson.outputs.exists == 'true'
name: Publish to any of NPM, Github, and Docker Hub
uses: changesets/action@v1
id: release
with:
version: npx -p @changesets/cli changeset version
commit: version packages
title: "chore(release): version packages"
publish: npx -p @changesets/cli changeset publish
setupGitUser: false
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
GIT_AUTHOR_NAME: asyncapi-bot
GIT_AUTHOR_EMAIL: [email protected]
GIT_COMMITTER_NAME: asyncapi-bot
GIT_COMMITTER_EMAIL: [email protected]
- if: failure() # Only, on failure, send a message on the 94_bot-failing-ci Slack channel
name: Report workflow run status to Slack
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
fields: repo,action,workflow
text: "Release workflow failed in release job"
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CI_FAIL_NOTIFY }}
5 changes: 4 additions & 1 deletion .sonarcloud.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
#we need to explicitly exclude them as they're not relevant to the source code
sonar.exclusions=packages/glee/examples/**/*,packages/glee/docs/**/*
sonar.exclusions=packages/glee/examples/**/*,packages/glee/docs/**/*,packages/gleequore/docs/**/*

# Ignore all duplicated code as it will be removed once we replace Glee's core with GleeQuore
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❗ Attention: this is a temporary but important change. Since we're in an intermediate step where lots of code is duplicated, Sonar is complaining. I'm adding this here for now but should be removed once we replace Glee's core with GleeQuore.

sonar.cpd.exclusions=packages/glee/src/adapters/**/*,packages/*-adapter/**/*,packages/shared-utils/**/*,packages/gleequore/**/*
3 changes: 2 additions & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
# The default owners are automatically added as reviewers when you open a pull request unless different owners are specified in the file.
* @Souvikns @KhudaDad414 @asyncapi-bot-eve

* packages/glee @Souvikns @KhudaDad414 @asyncapi-bot-eve
packages/glee @Souvikns @KhudaDad414 @asyncapi-bot-eve
packages/gleequore @fmvilas @Souvikns @KhudaDad414 @asyncapi-bot-eve
Loading
Loading