Files
lasuite-messages/.github/workflows/messages.yml
T
03a8dc743d ✨(mta) add Direct mode for MTA out (#285)
This PR adds support for 2 MTA out modes : Direct-to-MX and SMTP-relay outbound delivery. Direct mode supports SOCKS5 proxies, and we bundle a new `src/socks-proxy` component to support it.

We also add an end-to-end self-check command plus scheduled health-check task with optional Prometheus metrics.

---------

Co-authored-by: Bastien Ogier <bastien.ogier@ext.anct.gouv.fr>
Co-authored-by: Stanislas Bruhiere <stanislas@bruhiere.fr>
2025-09-04 15:48:46 +02:00

134 lines
3.2 KiB
YAML

name: Lint and tests
on:
push:
branches:
- main
pull_request:
branches:
- '*'
env:
COMPOSE_BAKE: true
jobs:
lint-back:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create env files
run: make create-env-files
- name: Run linting checks
run: make back-lint
test-back:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create env files
run: make create-env-files
- name: Setup data directories
run: |
mkdir -p data/media data/static
chmod -R 777 data
- name: Collect static files
run: make collectstatic
- name: Run backend tests
run: make back-test
test-front:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create env files
run: make create-env-files
- name: Install frontend dependencies
run: make front-install-frozen
- name: Run frontend tests
run: make front-test
lint-front:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create env files
run: make create-env-files
- name: Install frontend dependencies
run: make front-install-frozen
- name: Run frontend linting
run: make front-lint
- name: Run frontend check
run: make front-ts-check
build-front:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create env files
run: make create-env-files
- name: Install frontend dependencies
run: make front-install-frozen
- name: Build frontend
run: make front-build
check-api-state:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create env files
run: make create-env-files
- name: Install frontend dependencies
run: make front-install-frozen
- name: Run API update
run: make api-update
- name: Check for changes
run: |
git diff --quiet || \
(echo "API changes detected. Please run 'make api-update' then commit the changes." && exit 1)
docker-publish-mta-in:
uses: ./.github/workflows/docker-publish.yml
permissions:
contents: read
packages: write
attestations: write
id-token: write
secrets: inherit
with:
image_name: "mta-in"
context: "src/mta-in"
target: runtime-prod
docker-publish-mta-out:
uses: ./.github/workflows/docker-publish.yml
permissions:
contents: read
packages: write
attestations: write
id-token: write
secrets: inherit
with:
image_name: "mta-out"
context: "src/mta-out"
target: runtime-prod
docker-publish-socks-proxy:
uses: ./.github/workflows/docker-publish.yml
permissions:
contents: read
packages: write
attestations: write
id-token: write
secrets: inherit
with:
image_name: "socks-proxy"
context: "src/socks-proxy"