Skip to content

Commit 75aac3f

Browse files
committed
update project files
1 parent cbeb0d0 commit 75aac3f

File tree

14 files changed

+2583
-1632
lines changed

14 files changed

+2583
-1632
lines changed

.github/workflows/docker.yml

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
11
name: Test with Docker
22

3-
on: [push, pull_request]
3+
on:
4+
push:
5+
pull_request:
6+
schedule:
7+
- cron: '5 10 * * 3'
8+
49

510
jobs:
611
test:
712
runs-on: ubuntu-latest
813

914
strategy:
1015
matrix:
11-
node-version: [16.x, 18.x]
12-
# transporter: [NATS, Redis, MQTT, AMQP, AMQP10, STAN, Kafka, TCP]
13-
transporter: [NATS, Redis, MQTT, AMQP, STAN, Kafka, TCP]
16+
node-version: [20.x, 22.x, 24.x]
17+
# transporter: [NATS, Redis, MQTT, AMQP, AMQP10, Kafka, TCP]
18+
transporter: [None, NATS, Redis, MQTT, AMQP, Kafka, TCP]
1419
fail-fast: false
1520
steps:
16-
- uses: actions/checkout@v3
21+
- uses: actions/checkout@v4
1722

1823
- name: Use Node.js ${{ matrix.node-version }} with ${{ matrix.transporter }} transporter
19-
uses: actions/setup-node@v3
24+
uses: actions/setup-node@v4
2025
with:
2126
node-version: ${{ matrix.node-version }}
2227

@@ -47,14 +52,23 @@ jobs:
4752
run: sleep 30
4853

4954
- name: Check containers
50-
run: docker-compose ps
55+
run: docker compose ps
5156
working-directory: ./ci-test
5257

53-
- run: curl --silent --show-error --fail http://localhost:3000/api/greeter/hello
54-
- run: curl --silent --show-error --fail http://localhost:3000/api/products
58+
- name: Check greeter.hello via API
59+
run: curl --silent --show-error --fail http://localhost:3000/api/greeter/hello
60+
61+
- name: Check products.list via API
62+
run: curl --silent --show-error --fail http://localhost:3000/api/products
63+
if: ${{ matrix.transporter != 'None' }}
64+
65+
- name: Check greeter.hello via GraphQL
66+
run: |
67+
curl --silent --show-error --fail -H "Content-Type: application/json" --data '{"query": "query { hello } "}' http://localhost:3000/graphql
68+
if: ${{ matrix.transporter != 'None' }}
5569

5670
- name: Check logs
57-
run: docker-compose logs
71+
run: docker compose logs
5872
working-directory: ./ci-test
5973
if: failure()
6074

.github/workflows/generate.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,38 @@
11
name: Generate a demo project
22

3-
on:
3+
on:
44
push:
55
branches:
66
- master
7+
- next
8+
schedule:
9+
- cron: '0 10 * * 3'
710

811
jobs:
912
generate:
1013

1114
runs-on: ubuntu-latest
1215

1316
steps:
14-
- uses: actions/checkout@v3
15-
- name: Use Node.js 18.x
16-
uses: actions/setup-node@v3
17+
- uses: actions/checkout@v4
18+
19+
- name: Use Node.js 22.x
20+
uses: actions/setup-node@v4
1721
with:
18-
node-version: 18.x
19-
22+
node-version: 22.x
23+
2024
- name: Install dependencies
2125
run: npm i
26+
2227
- name: Generate project
23-
run: node_modules/.bin/moleculer init --answers test/demo/answers.json --no-install . project-demo
28+
run: node_modules/.bin/moleculer init --answers test/ci/answers.full.json --no-install . project-demo
2429

2530
- name: Initialize Git repo
2631
run: git init
2732
working-directory: ./project-demo
2833

2934
- name: Set remote
30-
run: git remote add origin https://${{ secrets.GH_TOKEN }}@github.com/moleculerjs/project-typescript-demo.git
35+
run: git remote add origin https://x-access-token:${{ secrets.GH_TOKEN }}@github.com/moleculerjs/project-typescript-demo.git
3136
working-directory: ./project-demo
3237

3338
- name: Add files
@@ -39,7 +44,7 @@ jobs:
3944
working-directory: ./project-demo
4045

4146
- name: Commit
42-
run: git commit -m "Generated files"
47+
run: git commit -m "Generated files (${{ github.sha }})"
4348
working-directory: ./project-demo
4449

4550
- name: Git push

.github/workflows/kubernetes.yml

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
name: Test with Kubernetes
22

3-
on: [push, pull_request]
3+
on:
4+
push:
5+
pull_request:
6+
schedule:
7+
- cron: '10 10 * * 3'
48

59
jobs:
610
test:
711
runs-on: ubuntu-latest
812

913
strategy:
1014
matrix:
11-
transporter: [NATS, Redis, MQTT, AMQP, AMQP10, STAN, Kafka]
15+
# transporter: [NATS, Redis, MQTT, AMQP, AMQP10, Kafka]
16+
transporter: [None, NATS, Redis, MQTT, AMQP, Kafka]
1217
fail-fast: false
1318

1419
steps:
15-
- uses: actions/checkout@v3
20+
- uses: actions/checkout@v4
1621

1722
- name: Use Node.js with ${{ matrix.transporter }} transporter
18-
uses: actions/setup-node@v3
23+
uses: actions/setup-node@v4
1924
with:
20-
node-version: 18.x
25+
node-version: 22.x
2126

2227
- name: Install dependencies
2328
run: npm i
@@ -31,47 +36,62 @@ jobs:
3136
- name: Generate project with '${{ matrix.transporter }}' transporter
3237
run: npm test
3338

34-
- name: Run tests in the generated project
35-
run: npm test
36-
working-directory: ./ci-test
37-
38-
- name: Start a local Docker Registry
39-
run: docker run -d --restart=always -p 5000:5000 --name registry registry:2
40-
4139
- name: Build Docker image
42-
run: docker build -t ci-test:demo .
40+
run: docker build -t ci-test .
4341
working-directory: ./ci-test
4442

4543
- uses: engineerd/[email protected]
4644
with:
47-
version: "v0.17.0"
45+
version: "v0.29.0"
4846
config: ./test/ci/kind-config.yaml
4947

5048
- run: kubectl cluster-info
5149
- run: kubectl get nodes
52-
- run: kubectl get pods -n kube-system
50+
- run: kubectl get pods --all-namespaces
5351

54-
- name: Load Docker image
55-
run: kind load docker-image ci-test:demo ci-test:demo
52+
- name: Load built image
53+
run: kind load docker-image ci-test
5654

5755
- name: Install NGINX Ingress
58-
run: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
56+
run: |
57+
kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/deploy-ingress-nginx.yaml
58+
kubectl wait --namespace ingress-nginx \
59+
--for=condition=ready pod \
60+
--selector=app.kubernetes.io/component=controller \
61+
--timeout=90s
62+
63+
- run: cat ./ci-test/k8s.yaml
5964

6065
- name: Kubectl apply
6166
working-directory: ./ci-test
62-
run: |
63-
# Fix nginx ingress issue: https://github.com/kubernetes/ingress-nginx/issues/5401#issuecomment-662424306
64-
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
65-
sed 's/image: ci-test/image: ci-test:demo/g' k8s.yaml | kubectl apply -f -
67+
run: kubectl apply -f k8s.yaml
6668

67-
- name: Sleeping 120 secs
68-
run: sleep 120
69+
- name: Wait for deployment
70+
run: "kubectl rollout status deployment ${{ matrix.transporter != 'None' && 'greeter' || 'services' }} --timeout=180s"
71+
72+
- name: Sleeping 90 secs (for Redis, Mongo...etc)
73+
run: sleep 90
6974

7075
- name: Check pods
71-
run: kubectl get all
76+
run: |
77+
kubectl get all
78+
79+
- name: Check greeter.hello via API
80+
run: curl --silent --show-error --fail http://ci-test.127.0.0.1.nip.io/api/greeter/hello
81+
82+
- name: Check products.list via API
83+
run: curl --silent --show-error --fail http://ci-test.127.0.0.1.nip.io/api/products
84+
if: ${{ matrix.transporter != 'None' }}
85+
86+
- name: Check greeter.hello via GraphQL
87+
run: |
88+
curl --silent --show-error --fail -H "Content-Type: application/json" --data '{"query": "query { hello } "}' http://ci-test.127.0.0.1.nip.io/graphql
89+
if: ${{ matrix.transporter != 'None' }}
7290

73-
- run: curl --silent --show-error --fail http://ci-test.127.0.0.1.nip.io/api/greeter/hello
74-
- run: curl --silent --show-error --fail http://ci-test.127.0.0.1.nip.io/api/products
91+
- name: Check Pod
92+
run: kubectl describe pod ${{ matrix.transporter != 'None' && 'greeter' || 'services' }}
93+
if: failure()
7594

7695
- name: Check logs
77-
run: kubectl logs deployment/products
96+
run: kubectl logs deployment/${{ matrix.transporter != 'None' && 'greeter' || 'services' }}
97+
if: failure()

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2023 MoleculerJS
3+
Copyright (c) 2025 MoleculerJS
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
:mortar_board: Moleculer-based microservices project template for Typescript project.
33

44
## Features
5-
- Moleculer v0.14 with full-detailed `moleculer.config.ts` file.
6-
- Common mono-repo project with a demo `greeter` service.
5+
- Moleculer v0.15 with full-detailed `moleculer.config.js` file.
6+
- Common mono-repo project with a `greeter` demo service.
77
- Sample database `products` service (with file-based NeDB in development & MongoDB in production).
8+
- Sample service with Moleculer Channels middleware.
9+
- Sample service with Moleculer Workflows middleware.
810
- Optional API Gateway service with detailed service settings.
911
- Beautiful static welcome page to test generated services & watch nodes and services.
1012
- Optional Transporter & Cacher.
@@ -27,15 +29,17 @@ $ moleculer init project-typescript my-project
2729
$ moleculer init project-typescript moleculer-demo
2830
2931
Template repo: moleculerjs/moleculer-template-project-typescript
30-
? Add API Gateway (moleculer-web) service? Yes
32+
? Add HTTP API Gateway (moleculer-web) service? Yes
33+
? Add GraphQL Gateway? Yes
34+
? Add Socket.Io Gateway? Yes
3135
? Would you like to communicate with other nodes? Yes
3236
? Select a transporter NATS (recommended)
33-
? Would you like to use cache? Yes
34-
? Select a cacher solution Memory
37+
? Would you like to use cache? No
38+
? Add DB sample service? Yes
39+
? Add Moleculer-Channels middleware? Yes
40+
? Select a Channels Redis
3541
? Would you like to enable metrics? Yes
36-
? Select a reporter solution Prometheus
3742
? Would you like to enable tracing? Yes
38-
? Select a exporter solution Console
3943
? Add Docker & Kubernetes sample files? Yes
4044
? Use ESLint to lint your code? Yes
4145
Create 'moleculer-demo' folder...
@@ -57,6 +61,6 @@ Create 'moleculer-demo' folder...
5761
moleculer-template-project-typescript is available under the [MIT license](https://tldrlegal.com/license/mit-license).
5862

5963
## Contact
60-
Copyright (c) 2023 MoleculerJS
64+
Copyright (c) 2025 MoleculerJS
6165

6266
[![@moleculerjs](https://img.shields.io/badge/github-moleculerjs-green.svg)](https://github.com/moleculerjs) [![@MoleculerJS](https://img.shields.io/badge/twitter-MoleculerJS-blue.svg)](https://twitter.com/MoleculerJS)

0 commit comments

Comments
 (0)