🌐(CI) build mails when crowdin_upload workflow

When we were executing the crowdin_upload workflow,
we were not building the mail template to dispatch it
to the backend. It resulted in the mail not being
totally translated. This commit fixes that issue
by adding the build mail step to the crowdin_upload.
To do so, we added it to the dependencies workflow.
"dependencies" workflow is callable by other
workflows that need a specific job.
This commit is contained in:
Anthony LC
2025-02-06 16:34:16 +01:00
committed by Anthony LC
parent a1bca9c436
commit 004e8ec645
7 changed files with 117 additions and 87 deletions

View File

@@ -7,10 +7,11 @@ on:
- 'release/**' - 'release/**'
jobs: jobs:
install-front: install-dependencies:
uses: ./.github/workflows/front-dependencies-installation.yml uses: ./.github/workflows/dependencies.yml
with: with:
node_version: '20.x' node_version: '20.x'
with-front-dependencies-installation: true
synchronize-with-crowdin: synchronize-with-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -7,13 +7,15 @@ on:
- main - main
jobs: jobs:
install-front: install-dependencies:
uses: ./.github/workflows/front-dependencies-installation.yml uses: ./.github/workflows/dependencies.yml
with: with:
node_version: '20.x' node_version: '20.x'
with-front-dependencies-installation: true
with-build_mails: true
synchronize-with-crowdin: synchronize-with-crowdin:
needs: install-front needs: install-dependencies
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@@ -29,6 +31,13 @@ jobs:
- name: Install development dependencies - name: Install development dependencies
run: pip install --user . run: pip install --user .
working-directory: src/backend working-directory: src/backend
- name: Restore the mail templates
uses: actions/cache@v4
id: mail-templates
with:
path: "src/backend/core/templates/mail"
key: mail-templates-${{ hashFiles('src/mail/mjml') }}
fail-on-cache-miss: true
- name: Install gettext - name: Install gettext
run: | run: |
sudo apt-get update sudo apt-get update

85
.github/workflows/dependencies.yml vendored Normal file
View File

@@ -0,0 +1,85 @@
name: Dependency reusable workflow
on:
workflow_call:
inputs:
node_version:
required: false
default: '20.x'
type: string
with-front-dependencies-installation:
type: boolean
default: false
with-build_mails:
type: boolean
default: false
jobs:
front-dependencies-installation:
if: ${{ inputs.with-front-dependencies-installation == true }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Restore the frontend cache
uses: actions/cache@v4
id: front-node_modules
with:
path: "src/frontend/**/node_modules"
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
- name: Setup Node.js
if: steps.front-node_modules.outputs.cache-hit != 'true'
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}
- name: Install dependencies
if: steps.front-node_modules.outputs.cache-hit != 'true'
run: cd src/frontend/ && yarn install --frozen-lockfile
- name: Cache install frontend
if: steps.front-node_modules.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: "src/frontend/**/node_modules"
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
build-mails:
if: ${{ inputs.with-build_mails == true }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: src/mail
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Restore the mail templates
uses: actions/cache@v4
id: mail-templates
with:
path: "src/backend/core/templates/mail"
key: mail-templates-${{ hashFiles('src/mail/mjml') }}
- name: Setup Node.js
if: steps.mail-templates.outputs.cache-hit != 'true'
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}
- name: Install yarn
if: steps.mail-templates.outputs.cache-hit != 'true'
run: npm install -g yarn
- name: Install node dependencies
if: steps.mail-templates.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile
- name: Build mails
if: steps.mail-templates.outputs.cache-hit != 'true'
run: yarn build
- name: Cache mail templates
if: steps.mail-templates.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: "src/backend/core/templates/mail"
key: mail-templates-${{ hashFiles('src/mail/mjml') }}

View File

@@ -1,36 +0,0 @@
name: Install frontend installation reusable workflow
on:
workflow_call:
inputs:
node_version:
required: false
default: '20.x'
type: string
jobs:
front-dependencies-installation:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Restore the frontend cache
uses: actions/cache@v4
id: front-node_modules
with:
path: "src/frontend/**/node_modules"
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
- name: Setup Node.js
if: steps.front-node_modules.outputs.cache-hit != 'true'
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}
- name: Install dependencies
if: steps.front-node_modules.outputs.cache-hit != 'true'
run: cd src/frontend/ && yarn install --frozen-lockfile
- name: Cache install frontend
if: steps.front-node_modules.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: "src/frontend/**/node_modules"
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}

View File

@@ -10,13 +10,14 @@ on:
jobs: jobs:
install-front: install-dependencies:
uses: ./.github/workflows/front-dependencies-installation.yml uses: ./.github/workflows/dependencies.yml
with: with:
node_version: '20.x' node_version: '20.x'
with-front-dependencies-installation: true
test-front: test-front:
needs: install-front needs: install-dependencies
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -39,7 +40,7 @@ jobs:
lint-front: lint-front:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: install-front needs: install-dependencies
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -60,7 +61,7 @@ jobs:
test-e2e-chromium: test-e2e-chromium:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: install-front needs: install-dependencies
timeout-minutes: 20 timeout-minutes: 20
steps: steps:
- name: Checkout repository - name: Checkout repository

View File

@@ -9,6 +9,11 @@ on:
- "*" - "*"
jobs: jobs:
install-dependencies:
uses: ./.github/workflows/dependencies.yml
with:
with-build_mails: true
lint-git: lint-git:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'pull_request' # Makes sense only for pull requests if: github.event_name == 'pull_request' # Makes sense only for pull requests
@@ -56,46 +61,6 @@ jobs:
exit 1 exit 1
fi fi
build-mails:
runs-on: ubuntu-latest
defaults:
run:
working-directory: src/mail
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
- name: Restore the mail templates
uses: actions/cache@v4
id: mail-templates
with:
path: "src/backend/core/templates/mail"
key: mail-templates-${{ hashFiles('src/mail/mjml') }}
- name: Install yarn
if: steps.mail-templates.outputs.cache-hit != 'true'
run: npm install -g yarn
- name: Install node dependencies
if: steps.mail-templates.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile
- name: Build mails
if: steps.mail-templates.outputs.cache-hit != 'true'
run: yarn build
- name: Cache mail templates
if: steps.mail-templates.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: "src/backend/core/templates/mail"
key: mail-templates-${{ hashFiles('src/mail/mjml') }}
lint-back: lint-back:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
@@ -121,7 +86,7 @@ jobs:
test-back: test-back:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build-mails needs: install-dependencies
defaults: defaults:
run: run:
@@ -169,6 +134,7 @@ jobs:
with: with:
path: "src/backend/core/templates/mail" path: "src/backend/core/templates/mail"
key: mail-templates-${{ hashFiles('src/mail/mjml') }} key: mail-templates-${{ hashFiles('src/mail/mjml') }}
fail-on-cache-miss: true
- name: Start MinIO - name: Start MinIO
run: | run: |

View File

@@ -12,6 +12,10 @@ and this project adheres to
## Added ## Added
- 📝(doc) Add security.md and codeofconduct.md #604 - 📝(doc) Add security.md and codeofconduct.md #604
## Fixed
🌐(CI) Fix email partially translated #616
## [2.1.0] - 2025-01-29 ## [2.1.0] - 2025-01-29
## Added ## Added