Skip to content

Commit

Permalink
chore: add gleequore package and adapters (#849)
Browse files Browse the repository at this point in the history
  • Loading branch information
fmvilas authored Oct 28, 2024
1 parent a30180c commit c66dd3a
Show file tree
Hide file tree
Showing 325 changed files with 9,106 additions and 346 deletions.
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
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

0 comments on commit c66dd3a

Please sign in to comment.