Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
algarfer committed Mar 31, 2024
2 parents 5519845 + f77468d commit e6d14c4
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 73 deletions.
215 changes: 156 additions & 59 deletions .github/workflows/release.yml → .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,75 +7,121 @@ on:
jobs:

unit-tests:

name: Unit tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix users/authservice ci
- run: npm --prefix users/userservice ci
- run: npm --prefix gatewayservice ci
- run: npm --prefix webapp ci
- name: Check out the repo
uses: actions/checkout@v4

# TODO: Re-enable tests and coverage

# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 20

# - run: npm --prefix users/authservice ci
# - run: npm --prefix users/userservice ci
# - run: npm --prefix gatewayservice ci
# - run: npm --prefix webapp ci
# - run: npm --prefix users/authservice test -- --coverage
# - run: npm --prefix users/userservice test -- --coverage
# - run: npm --prefix gatewayservice test -- --coverage
# TODO - Re-enable when webapp tests match the current app desgin
# - run: npm --prefix webapp test -- --coverage
# TODO - Add tests of the new microservices
- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

# TODO: Add tests of the new microservices
#

# - name: Analyze with SonarCloud
# uses: sonarsource/sonarcloud-github-action@master
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}


e2e-tests:
needs: [unit-tests]

name: End to end tests
runs-on: ubuntu-latest
needs: [unit-tests]

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm --prefix users/authservice install
- run: npm --prefix users/userservice install
- run: npm --prefix gatewayservice install
- run: npm --prefix webapp install
- run: npm --prefix webapp run build
# TODO - Re-enable when webapp tests match the current app desgin

- name: Check out the repo
uses: actions/checkout@v4

# TODO: Re-enable when webapp tests match the current app desgin

# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 20

# - run: npm --prefix users/authservice install
# - run: npm --prefix users/userservice install
# - run: npm --prefix gatewayservice install
# - run: npm --prefix webapp install
# - run: npm --prefix webapp run build

# - run: npm --prefix webapp run test:e2e

docker-push-webapp:

name: Push webapp Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Create file from secret
run: |
echo "${{ secrets.DEPLOY_SSL_CERT }}" > webapp/certificate.crt
echo "${{ secrets.DEPLOY_SSL_KEY }}" > webapp/private.key
shell: bash

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
env:
API_URI: http://${{ secrets.DEPLOY_HOST }}:8000
with:
name: arquisoft/wiq_es05b/webapp
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: webapp
buildargs: API_URI
platforms: linux/arm64, linux/amd64
name: arquisoft/wiq_es05b/webapp
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: webapp
buildargs: API_URI
platforms: linux/arm64

env:
API_URI: http://${{ secrets.DEPLOY_HOST }}:8000


docker-push-authservice:

name: Push auth service Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
Expand All @@ -84,17 +130,26 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: users/authservice
platforms: linux/arm64, linux/amd64
platforms: linux/arm64


docker-push-userservice:

name: Push user service Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
Expand All @@ -103,17 +158,26 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: users/userservice
platforms: linux/arm64, linux/amd64
platforms: linux/arm64


docker-push-gatewayservice:

name: Push gateway service Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
Expand All @@ -122,17 +186,26 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: gatewayservice
platforms: linux/arm64, linux/amd64
platforms: linux/arm64


docker-push-jordi-ask:

name: Push Jordi Ask service Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
Expand All @@ -141,17 +214,26 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: jordi/jordi-ask
platforms: linux/arm64, linux/amd64
platforms: linux/arm64


docker-push-jordi-think:

name: Push Jordi Think service Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
Expand All @@ -160,17 +242,26 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: jordi/jordi-think
platforms: linux/arm64, linux/amd64
platforms: linux/arm64


docker-push-ranking:

name: Push ranking service Docker Image to GitHub Packages
runs-on: ubuntu-latest
needs: [e2e-tests]

permissions:
contents: read
packages: write
needs: [e2e-tests]

steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx # required for building multi-platform images
uses: docker/setup-buildx-action@v1

- name: Check out the repo
uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
Expand All @@ -179,7 +270,8 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
workdir: ranking
platforms: linux/arm64, linux/amd64
platforms: linux/arm64


docker-push-history:
name: Push history service Docker Image to GitHub Packages
Expand All @@ -201,18 +293,23 @@ jobs:
platforms: linux/arm64, linux/amd64

deploy:

name: Deploy over SSH
runs-on: ubuntu-latest
needs: [docker-push-userservice,docker-push-authservice,docker-push-gatewayservice,docker-push-webapp,docker-push-jordi-ask,docker-push-jordi-think,docker-push-ranking]

steps:
- name: Deploy over SSH
uses: fifsky/ssh-action@master
with:
host: ${{ secrets.DEPLOY_HOST }}
user: ${{ secrets.DEPLOY_USER }}
key: ${{ secrets.DEPLOY_KEY }}

command: |
wget https://raw.githubusercontent.com/arquisoft/wiq_es05b/master/docker-compose.yml -O docker-compose.yml
wget https://raw.githubusercontent.com/arquisoft/wiq_es05b/master/.env -O .env
docker compose --profile prod down
docker compose --profile prod up -d
mkdir -p wiq_es05b
cd wiq_es05b
wget https://raw.githubusercontent.com/arquisoft/wiq_es05b/master/docker-compose.yml -O docker-compose.yml
wget https://raw.githubusercontent.com/arquisoft/wiq_es05b/master/.env -O .env
docker compose --profile prod down
docker compose --profile prod up -d --pull always
1 change: 0 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ services:
AUTH_SERVICE_URL: http://authservice:8002
USER_SERVICE_URL: http://userservice:8001
JORDI_ASK_SERVICE_URL: http://jordi-ask:8003
SECRET: a-very-secret-string

restart: always

Expand Down
14 changes: 1 addition & 13 deletions docs/src/09_architecture_decisions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,4 @@ ifndef::imagesdir[:imagesdir: ../images]
[[section-design-decisions]]
== Architecture Decisions

The initial architecture decisions are in the GitHub Wiki.

* https://github.com/Arquisoft/wiq_es05b/wiki/ADR-01-‐-JavaScript[ADR 01 - JavaScript]

* https://github.com/Arquisoft/wiq_es05b/wiki/ADR-02-%E2%80%90-QG-Microservice[ADR 02 - QG Microservice]

* https://github.com/Arquisoft/wiq_es05b/wiki/ADR-03-‐-Docker[ADR 03 - Docker]

* https://github.com/Arquisoft/wiq_es05b/wiki/ADR-04-‐-React[ADR 04 - React]

* https://github.com/Arquisoft/wiq_es05b/wiki/ADR-05-‐-MongoDB[ADR 05 - MongoDB]

* https://github.com/Arquisoft/wiq_es05b/wiki/ADR-06-‐-ExpressJS[ADR 06 - ExpressJS]
The initial architecture decisions are in the GitHub Wiki: https://github.com/Arquisoft/wiq_es05b/wiki/ADRS[Wiki ADRS]

0 comments on commit e6d14c4

Please sign in to comment.