Compare commits

..

1 Commits

3 changed files with 38 additions and 137 deletions

View File

@@ -1,76 +0,0 @@
# ============================================================================
# Template — .gitea/workflows/ci.yml
# Drop this file into each app repo (adjust LIONS_JAVA_VERSION +
# LIONS_APP_NAME + optional --deploy-repo-url). It runs inside the
# registry.lions.dev/lionsdev/lionsctl-ci:latest image, so lionsctl,
# kubectl, helm, docker CLI, JDK 17+21 and Maven are all pre-installed.
#
# Required Gitea repo secrets:
# LIONS_REGISTRY_USERNAME (typically "lionsregistry")
# LIONS_REGISTRY_PASSWORD
# LIONS_GIT_USERNAME (typically "lionsdev")
# LIONS_GIT_ACCESS_TOKEN (Gitea PAT with write:repository, write:package)
# LIONS_GIT_PASSWORD (Gitea password for same user — Helm mode)
# SMTP_HOST SMTP_PORT SMTP_USERNAME SMTP_PASSWORD SMTP_FROM
# ============================================================================
name: CI/CD Pipeline
on:
push:
branches: [ main ]
workflow_dispatch: {}
env:
# Adjust per repo:
# - unionflow-server-impl-quarkus -> 21
# - all others -> 17
LIONS_JAVA_VERSION: "17"
LIONS_CLUSTER: "k1"
jobs:
pipeline:
runs-on: ubuntu-latest
container:
image: registry.lions.dev/lionsdev/lionsctl-ci:latest
credentials:
username: ${{ secrets.LIONS_REGISTRY_USERNAME }}
password: ${{ secrets.LIONS_REGISTRY_PASSWORD }}
# Mount the host docker socket so `docker build/push` inside the
# container hits the runner's daemon (DinD-free).
volumes:
- /var/run/docker.sock:/var/run/docker.sock
steps:
- name: Show tooling
run: |
lionsctl --version || true
docker --version
kubectl version --client=true
helm version --short
mvn --version | head -n2
- name: Pipeline deploy
env:
LIONS_REGISTRY_USERNAME: ${{ secrets.LIONS_REGISTRY_USERNAME }}
LIONS_REGISTRY_PASSWORD: ${{ secrets.LIONS_REGISTRY_PASSWORD }}
LIONS_GIT_USERNAME: ${{ secrets.LIONS_GIT_USERNAME }}
LIONS_GIT_ACCESS_TOKEN: ${{ secrets.LIONS_GIT_ACCESS_TOKEN }}
LIONS_GIT_PASSWORD: ${{ secrets.LIONS_GIT_PASSWORD }}
SMTP_HOST: ${{ secrets.SMTP_HOST }}
SMTP_PORT: ${{ secrets.SMTP_PORT }}
SMTP_USERNAME: ${{ secrets.SMTP_USERNAME }}
SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }}
SMTP_FROM: ${{ secrets.SMTP_FROM }}
# No actions/checkout — lionsctl clones internally using git_access_token.
run: |
# For btpxpress-backend add: --deploy-repo-url https://git.lions.dev/lionsdev/btpxpress-server-k1
# For btpxpress-frontend add: --deploy-repo-url https://git.lions.dev/lionsdev/btpxpress-client-k1
lionsctl pipeline \
-u ${{ gitea.server_url }}/${{ gitea.repository }} \
-b ${{ gitea.ref_name }} \
-j ${{ env.LIONS_JAVA_VERSION }} \
-e production \
-c ${{ env.LIONS_CLUSTER }} \
-p prod \
--deploy-repo-url https://git.lions.dev/lionsdev/lionsdev-client-impl-quarkus-k1 \
-m admin@lions.dev

View File

@@ -1,22 +0,0 @@
# Dockerfile for lionsdev-client-impl-quarkus
# Used by lionsctl pipeline. Expects `mvn clean package -Pprod` to have produced target/quarkus-app/ (fast-jar).
FROM registry.access.redhat.com/ubi8/openjdk-21:1.21
ENV LANGUAGE='en_US:en'
COPY --chown=1001:1001 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=1001:1001 target/quarkus-app/*.jar /deployments/
COPY --chown=1001:1001 target/quarkus-app/app/ /deployments/app/
COPY --chown=1001:1001 target/quarkus-app/quarkus/ /deployments/quarkus/
USER 1001
EXPOSE 8080
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
HEALTHCHECK --interval=30s --timeout=3s --start-period=30s --retries=3 \
CMD curl -f http://localhost:8080/health || exit 1
ENTRYPOINT [ "java", "-jar", "/deployments/quarkus-run.jar" ]

View File

@@ -1,59 +1,58 @@
# lionsdev-client-impl-quarkus
> Landing + portail LionsDev — `https://lions.dev`
This project uses Quarkus, the Supersonic Subatomic Java Framework.
## Rôle
If you want to learn more about Quarkus, please visit its website: <https://quarkus.io/>.
Application web vitrine de l'écosystème LionsDev : présentation des produits (UnionFlow, LUM, BTPXpress), auto-inscription, téléchargements, accès aux différents portails d'administration.
## Running the application in dev mode
## Stack
You can run your application in dev mode that enables live coding using:
| Composant | Technologie |
|-----------|-------------|
| Framework | Quarkus 3.27.3 LTS |
| UI | PrimeFaces 14 + Freya |
| Auth | OIDC (Keycloak) |
| Java | 21 |
## Développement local
```shell
```shell script
./mvnw quarkus:dev
```
Dev UI : `http://localhost:8080/q/dev/`
> **_NOTE:_** Quarkus now ships with a Dev UI, which is available in dev mode only at <http://localhost:8080/q/dev/>.
### Storage local
## Packaging and running the application
La propriété `app.storage.base-path` (stockage des fichiers upload) doit être définie. En `%dev`, elle vaut `${user.home}/lionsdev/storage`. En `%prod`, elle lit la variable d'env `STORAGE_PATH`.
The application can be packaged using:
## Déploiement (lionsctl)
```bash
lionsctl pipeline \
-u https://git.lions.dev/lionsdev/lionsdev-client-impl-quarkus \
-b feature/business-enhancement \
-j 21 -e production -c k1 -p prod
```shell script
./mvnw package
```
> ⚠️ La branche prod est `feature/business-enhancement` (pas `main`).
It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory.
Be aware that its not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory.
**URL prod** : `https://lions.dev`
**Health** : `https://lions.dev/q/health`
The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`.
**Pré-requis infrastructure** avant pipeline (migration Helm → lionsctl) :
- `Dockerfile` racine (fast-jar, `ubi8/openjdk-21:1.21`, UID 1001, `java -jar` direct)
- Deployment Helm existant supprimé au préalable (selector immutable)
- Override env `STORAGE_PATH=/tmp/lionsdev-storage` sur le deployment (lionsctl ne l'injecte pas)
- Service selector à repatcher après pipeline (retirer labels `app.kubernetes.io/*`)
If you want to build an _über-jar_, execute the following command:
## Build
```shell
./mvnw clean package -DskipTests
java -jar target/quarkus-app/quarkus-run.jar
```shell script
./mvnw package -Dquarkus.package.jar.type=uber-jar
```
## Licence
The application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`.
Propriétaire — Lions Dev © 2026
## Creating a native executable
You can create a native executable using:
```shell script
./mvnw package -Dnative
```
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
```shell script
./mvnw package -Dnative -Dquarkus.native.container-build=true
```
You can then execute your native executable with: `./target/lionsdev-client-impl-quarkus-1.0.0-SNAPSHOT-runner`
If you want to learn more about building native executables, please consult <https://quarkus.io/guides/maven-tooling>.
## Related Guides
- PrimeFaces ([guide](https://quarkiverse.github.io/quarkiverse-docs/quarkus-primefaces/dev/)): PrimeFaces - lets you utilize PrimeFaces and PF Extensions to make JavaServer Faces (JSF) development so much easier!