From 71a32cd7cdeb8820f93c6c13090ed255c7fd0b97 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Fri, 20 Jun 2025 21:53:52 +0200 Subject: [PATCH 01/18] Create docker-build.yml --- .github/workflows/docker-build.yml | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/docker-build.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..c11a06a2 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,43 @@ +# Nom de votre pipeline d'automatisation +name: Build and Push OpenAS2 Image to Docker Hub + +# Déclencheurs : Ce pipeline s'exécutera automatiquement... +on: + # ...à chaque fois que vous poussez du code sur la branche 'main' de votre fork. + push: + branches: [ "main" ] + # ...ou si vous voulez le lancer manuellement depuis l'interface GitHub. + workflow_dispatch: + +jobs: + build-and-push: + # Le robot utilisera un environnement Ubuntu standard et propre. + runs-on: ubuntu-latest + + steps: + # 1. Récupère le code source de votre fork + - name: Checkout repository + uses: actions/checkout@v4 + + # 2. Se connecte à Docker Hub de manière sécurisée avec les secrets que vous avez créés + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + # 3. Récupère des métadonnées pour nommer l'image intelligemment + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/mon-openas2-perso + + # 4. Construit l'image Docker et la pousse sur votre Docker Hub + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 6b3cd76823dd084618d1bd3756f048448c1dbc52 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Fri, 20 Jun 2025 22:15:17 +0200 Subject: [PATCH 02/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index c11a06a2..94d308e3 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -12,7 +12,7 @@ on: jobs: build-and-push: # Le robot utilisera un environnement Ubuntu standard et propre. - runs-on: ubuntu-latest + runs-on: self-hosted steps: # 1. Récupère le code source de votre fork From 4df4a350eba735a48179f6d4f5380472568de594 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Fri, 20 Jun 2025 22:16:27 +0200 Subject: [PATCH 03/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 94d308e3..30227f4e 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,39 +1,33 @@ -# Nom de votre pipeline d'automatisation name: Build and Push OpenAS2 Image to Docker Hub # Déclencheurs : Ce pipeline s'exécutera automatiquement... on: - # ...à chaque fois que vous poussez du code sur la branche 'main' de votre fork. + # ...à chaque fois que vous poussez du code sur la branche 'master' de votre fork. push: - branches: [ "main" ] + branches: [ "master" ] # ...ou si vous voulez le lancer manuellement depuis l'interface GitHub. workflow_dispatch: jobs: build-and-push: - # Le robot utilisera un environnement Ubuntu standard et propre. runs-on: self-hosted steps: - # 1. Récupère le code source de votre fork - name: Checkout repository uses: actions/checkout@v4 - # 2. Se connecte à Docker Hub de manière sécurisée avec les secrets que vous avez créés - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - # 3. Récupère des métadonnées pour nommer l'image intelligemment - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: images: ${{ secrets.DOCKERHUB_USERNAME }}/mon-openas2-perso - # 4. Construit l'image Docker et la pousse sur votre Docker Hub - name: Build and push Docker image uses: docker/build-push-action@v5 with: From 5d4ebaebfd50940c829e4bb948843068d2419399 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Fri, 20 Jun 2025 23:28:45 +0200 Subject: [PATCH 04/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 30227f4e..a6cb77bf 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -26,7 +26,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ${{ secrets.DOCKERHUB_USERNAME }}/mon-openas2-perso + images: ${{ secrets.DOCKERHUB_USERNAME }}/openas2 - name: Build and push Docker image uses: docker/build-push-action@v5 From 7a2c21ef21744cb48fad4383022654ee97eb5925 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 01:16:04 +0200 Subject: [PATCH 05/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index a6cb77bf..aeaae691 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,11 +1,9 @@ name: Build and Push OpenAS2 Image to Docker Hub -# Déclencheurs : Ce pipeline s'exécutera automatiquement... on: - # ...à chaque fois que vous poussez du code sur la branche 'master' de votre fork. - push: - branches: [ "master" ] - # ...ou si vous voulez le lancer manuellement depuis l'interface GitHub. + release: + types: [published] + workflow_dispatch: jobs: @@ -27,6 +25,11 @@ jobs: uses: docker/metadata-action@v5 with: images: ${{ secrets.DOCKERHUB_USERNAME }}/openas2 + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=edge,branch=master - name: Build and push Docker image uses: docker/build-push-action@v5 From 441035688adf75fc4e0ddec1dc47a8bcabe13602 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 01:19:31 +0200 Subject: [PATCH 06/18] Create upstream-watcher.yml --- .github/workflows/upstream-watcher.yml | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/upstream-watcher.yml diff --git a/.github/workflows/upstream-watcher.yml b/.github/workflows/upstream-watcher.yml new file mode 100644 index 00000000..9bc46755 --- /dev/null +++ b/.github/workflows/upstream-watcher.yml @@ -0,0 +1,65 @@ +name: Check for new OpenAS2 Upstream Release + +on: + # Se déclenche tous les jours à 3h du matin (vous pouvez ajuster) + schedule: + - cron: '0 3 * * *' + # Permet aussi de le lancer manuellement pour tester + workflow_dispatch: + +jobs: + check-and-release: + runs-on: ubuntu-latest + permissions: + # Donne au workflow la permission de créer des releases sur votre fork + contents: write + + steps: + # 1. Récupère la dernière release du dépôt OpenAS2 officiel + - name: Get latest upstream release tag + id: upstream_release + run: | + LATEST_TAG=$(curl -sL "https://api.github.com/repos/OpenAS2/OpenAs2App/releases/latest" | jq -r ".tag_name") + if [ -z "$LATEST_TAG" ]; then + echo "Could not fetch latest upstream tag. Exiting." + exit 1 + fi + echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT + + # 2. Récupère la dernière release de notre propre fork + - name: Get latest self fork release tag + id: self_release + run: | + LATEST_TAG=$(curl -sL "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r ".tag_name") + # Si aucune release n'existe sur le fork, on met une valeur par défaut pour continuer + if [ "$LATEST_TAG" == "null" ] || [ -z "$LATEST_TAG" ]; then + LATEST_TAG="v0.0.0" + fi + echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT + + # 3. Compare les deux versions + - name: Compare tags and decide to proceed + id: decision + run: | + echo "Upstream tag: ${{ steps.upstream_release.outputs.tag }}" + echo "Our latest tag: ${{ steps.self_release.outputs.tag }}" + if [ "${{ steps.upstream_release.outputs.tag }}" == "${{ steps.self_release.outputs.tag }}" ]; then + echo "Tags are the same. Nothing to do." + echo "proceed=false" >> $GITHUB_OUTPUT + else + echo "New upstream release found! Proceeding to create a new release on this fork." + echo "proceed=true" >> $GITHUB_OUTPUT + fi + + # 4. Si une nouvelle version est trouvée, crée une release sur notre fork + # Ceci déclenchera automatiquement notre autre workflow (docker-build.yml) ! + - name: Create new release on fork to trigger build + if: steps.decision.outputs.proceed == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + UPSTREAM_TAG: ${{ steps.upstream_release.outputs.tag }} + run: | + gh release create "$UPSTREAM_TAG" \ + --repo "$GITHUB_REPOSITORY" \ + --title "Sync with upstream: $UPSTREAM_TAG" \ + --notes "Automated release to trigger build for upstream version $UPSTREAM_TAG." From 3363bddb57b6a668790f1189f6720736a7edfda4 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 01:23:30 +0200 Subject: [PATCH 07/18] Update upstream-watcher.yml --- .github/workflows/upstream-watcher.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upstream-watcher.yml b/.github/workflows/upstream-watcher.yml index 9bc46755..824ac394 100644 --- a/.github/workflows/upstream-watcher.yml +++ b/.github/workflows/upstream-watcher.yml @@ -9,7 +9,7 @@ on: jobs: check-and-release: - runs-on: ubuntu-latest + runs-on: self-hosted permissions: # Donne au workflow la permission de créer des releases sur votre fork contents: write From b70d0923aa44278b177afa6a216bfb537a6e6e62 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 02:11:09 +0200 Subject: [PATCH 08/18] Delete .github/workflows/upstream-watcher.yml --- .github/workflows/upstream-watcher.yml | 65 -------------------------- 1 file changed, 65 deletions(-) delete mode 100644 .github/workflows/upstream-watcher.yml diff --git a/.github/workflows/upstream-watcher.yml b/.github/workflows/upstream-watcher.yml deleted file mode 100644 index 824ac394..00000000 --- a/.github/workflows/upstream-watcher.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: Check for new OpenAS2 Upstream Release - -on: - # Se déclenche tous les jours à 3h du matin (vous pouvez ajuster) - schedule: - - cron: '0 3 * * *' - # Permet aussi de le lancer manuellement pour tester - workflow_dispatch: - -jobs: - check-and-release: - runs-on: self-hosted - permissions: - # Donne au workflow la permission de créer des releases sur votre fork - contents: write - - steps: - # 1. Récupère la dernière release du dépôt OpenAS2 officiel - - name: Get latest upstream release tag - id: upstream_release - run: | - LATEST_TAG=$(curl -sL "https://api.github.com/repos/OpenAS2/OpenAs2App/releases/latest" | jq -r ".tag_name") - if [ -z "$LATEST_TAG" ]; then - echo "Could not fetch latest upstream tag. Exiting." - exit 1 - fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - # 2. Récupère la dernière release de notre propre fork - - name: Get latest self fork release tag - id: self_release - run: | - LATEST_TAG=$(curl -sL "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r ".tag_name") - # Si aucune release n'existe sur le fork, on met une valeur par défaut pour continuer - if [ "$LATEST_TAG" == "null" ] || [ -z "$LATEST_TAG" ]; then - LATEST_TAG="v0.0.0" - fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - # 3. Compare les deux versions - - name: Compare tags and decide to proceed - id: decision - run: | - echo "Upstream tag: ${{ steps.upstream_release.outputs.tag }}" - echo "Our latest tag: ${{ steps.self_release.outputs.tag }}" - if [ "${{ steps.upstream_release.outputs.tag }}" == "${{ steps.self_release.outputs.tag }}" ]; then - echo "Tags are the same. Nothing to do." - echo "proceed=false" >> $GITHUB_OUTPUT - else - echo "New upstream release found! Proceeding to create a new release on this fork." - echo "proceed=true" >> $GITHUB_OUTPUT - fi - - # 4. Si une nouvelle version est trouvée, crée une release sur notre fork - # Ceci déclenchera automatiquement notre autre workflow (docker-build.yml) ! - - name: Create new release on fork to trigger build - if: steps.decision.outputs.proceed == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - UPSTREAM_TAG: ${{ steps.upstream_release.outputs.tag }} - run: | - gh release create "$UPSTREAM_TAG" \ - --repo "$GITHUB_REPOSITORY" \ - --title "Sync with upstream: $UPSTREAM_TAG" \ - --notes "Automated release to trigger build for upstream version $UPSTREAM_TAG." From cbc72c328660d6da2a1f5beb581d59557a467289 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 02:12:35 +0200 Subject: [PATCH 09/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 82 ++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 11 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index aeaae691..a74e5d4f 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,40 +1,100 @@ -name: Build and Push OpenAS2 Image to Docker Hub +name: Check source, Build and Push Image on: - release: - types: [published] - + # Se déclenche tous les jours à 3h du matin (vous pouvez ajuster) + schedule: + - cron: '0 3 * * *' + # Permet aussi de le lancer manuellement pour tester workflow_dispatch: jobs: - build-and-push: + check-build-and-push: + # On peut le laisser sur ubuntu-latest car même le build Docker + # est exécuté par notre runner self-hosted si on le spécifie au niveau du job. + # Mais pour plus de clarté, mettons-le sur votre runner. runs-on: self-hosted + permissions: + # Donne la permission de créer des releases sur votre fork (pour marquer le succès) + contents: write + steps: - - name: Checkout repository + # === PARTIE 1 : Le Gardien === + + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y jq + + - name: Get latest upstream release tag + id: upstream_release + run: | + LATEST_TAG=$(curl -sL "https://api.github.com/repos/OpenAS2/OpenAs2App/releases/latest" | jq -r ".tag_name") + if [ -z "$LATEST_TAG" ] || [ "$LATEST_TAG" == "null" ]; then echo "Could not fetch latest upstream tag. Exiting."; exit 1; fi + echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT + + - name: Get latest self fork release tag + id: self_release + run: | + LATEST_TAG=$(curl -sL "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r ".tag_name") + if [ "$LATEST_TAG" == "null" ] || [ -z "$LATEST_TAG" ]; then LATEST_TAG="v0.0.0"; fi + echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT + + - name: Compare tags and decide to proceed + id: decision + run: | + echo "Upstream tag: ${{ steps.upstream_release.outputs.tag }}" + echo "Our latest tag: ${{ steps.self_release.outputs.tag }}" + if [ "${{ steps.upstream_release.outputs.tag }}" == "${{ steps.self_release.outputs.tag }}" ]; then + echo "Tags are the same. Nothing to do." + echo "proceed=false" >> $GITHUB_OUTPUT + else + echo "New upstream release found! Proceeding to build." + echo "proceed=true" >> $GITHUB_OUTPUT + fi + + # === PARTIE 2 : Le Bâtisseur (ne s'exécute que si une nouvelle version est trouvée) === + + # On utilise le tag de la nouvelle release pour faire le checkout + - name: Checkout specific release tag + if: steps.decision.outputs.proceed == 'true' uses: actions/checkout@v4 + with: + repository: OpenAS2/OpenAs2App # On checkout le dépôt original directement + ref: ${{ steps.upstream_release.outputs.tag }} # Au tag de la nouvelle release ! - name: Log in to Docker Hub + if: steps.decision.outputs.proceed == 'true' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker + if: steps.decision.outputs.proceed == 'true' id: meta uses: docker/metadata-action@v5 with: images: ${{ secrets.DOCKERHUB_USERNAME }}/openas2 - tags: | - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=edge,branch=master + tags: type=semver,pattern={{version}} - name: Build and push Docker image + if: steps.decision.outputs.proceed == 'true' uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + + # === PARTIE 3 : Marquer le succès === + + # On crée la release sur notre fork APRÈS le build réussi, pour garder une trace. + - name: Create new release on fork to mark success + if: steps.decision.outputs.proceed == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + UPSTREAM_TAG: ${{ steps.upstream_release.outputs.tag }} + run: | + gh release create "$UPSTREAM_TAG" \ + --repo "$GITHUB_REPOSITORY" \ + --title "Build successful for upstream: $UPSTREAM_TAG" \ + --notes "Automated release after a successful build and push of image with tag $UPSTREAM_TAG." From a03f6164ede1186a4285bac29ade61f58161a560 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 02:15:04 +0200 Subject: [PATCH 10/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index a74e5d4f..faae3603 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -20,10 +20,6 @@ jobs: steps: # === PARTIE 1 : Le Gardien === - - - name: Install dependencies - run: sudo apt-get update && sudo apt-get install -y jq - - name: Get latest upstream release tag id: upstream_release run: | From 7bb9222382e14e52f02a7fe7b6cc0918dfbb0f9b Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 02:32:50 +0200 Subject: [PATCH 11/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index faae3603..a6c4c4fc 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -69,8 +69,11 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ${{ secrets.DOCKERHUB_USERNAME }}/openas2 - tags: type=semver,pattern={{version}} + # Le nom de base de votre image reste le même + images: ${{ secrets.DOCKERHUB_USERNAME }}/sofena-as2-server + # On définit les tags manuellement à partir des résultats des étapes précédentes + tags: | + ${{ steps.upstream_release.outputs.tag }} - name: Build and push Docker image if: steps.decision.outputs.proceed == 'true' From c8ba822492c0b9f410565cc4057a8d7108d48d8e Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 02:41:55 +0200 Subject: [PATCH 12/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index a6c4c4fc..7c511236 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -70,7 +70,7 @@ jobs: uses: docker/metadata-action@v5 with: # Le nom de base de votre image reste le même - images: ${{ secrets.DOCKERHUB_USERNAME }}/sofena-as2-server + images: ${{ secrets.DOCKERHUB_USERNAME }}/openas2 # On définit les tags manuellement à partir des résultats des étapes précédentes tags: | ${{ steps.upstream_release.outputs.tag }} From a8c84f85b68e201a210fc089bf4a3018842388fa Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 02:59:55 +0200 Subject: [PATCH 13/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 7c511236..6a7b923e 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -84,6 +84,27 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + # --- Build N°1 : Le Serveur --- + - name: Build and push SERVER Docker image + if: steps.decision.outputs.proceed == 'true' + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile # On spécifie le Dockerfile du serveur + push: true + tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2:latest + + # --- Build N°2 : L'Interface Utilisateur (UI) --- + - name: Build and push WEBUI Docker image + if: steps.decision.outputs.proceed == 'true' + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile_WebUI # On spécifie le Dockerfile de la UI + push: true + tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:latest + + # === PARTIE 3 : Marquer le succès === # On crée la release sur notre fork APRÈS le build réussi, pour garder une trace. From ac40e2a8fcf4f1a48be769807721931a394d8e33 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 03:03:09 +0200 Subject: [PATCH 14/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 6a7b923e..b721a91f 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -75,15 +75,6 @@ jobs: tags: | ${{ steps.upstream_release.outputs.tag }} - - name: Build and push Docker image - if: steps.decision.outputs.proceed == 'true' - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - # --- Build N°1 : Le Serveur --- - name: Build and push SERVER Docker image if: steps.decision.outputs.proceed == 'true' From 05016125061545ff0e25b60feb1fd8621614b602 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 03:13:54 +0200 Subject: [PATCH 15/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index b721a91f..7e3a042a 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -75,6 +75,17 @@ jobs: tags: | ${{ steps.upstream_release.outputs.tag }} + # Étape A : On met en place QEMU pour permettre l'émulation d'architectures + - name: Set up QEMU + if: steps.decision.outputs.proceed == 'true' + uses: docker/setup-qemu-action@v3 + + # Étape B : On initialise le bâtisseur Docker Buildx + - name: Set up Docker Buildx + if: steps.decision.outputs.proceed == 'true' + id: buildx + uses: docker/setup-buildx-action@v3 + # --- Build N°1 : Le Serveur --- - name: Build and push SERVER Docker image if: steps.decision.outputs.proceed == 'true' @@ -83,6 +94,7 @@ jobs: context: . file: ./Dockerfile # On spécifie le Dockerfile du serveur push: true + platforms: linux/amd64, linux/arm64 tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2:latest # --- Build N°2 : L'Interface Utilisateur (UI) --- @@ -93,6 +105,7 @@ jobs: context: . file: ./Dockerfile_WebUI # On spécifie le Dockerfile de la UI push: true + platforms: linux/amd64, linux/arm64 tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:latest From 7cf792dd5f203d42e489d98a2aad5f93dbbef219 Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Sat, 21 Jun 2025 03:43:03 +0200 Subject: [PATCH 16/18] Update docker-build.yml --- .github/workflows/docker-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 7e3a042a..cc398f51 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -94,7 +94,7 @@ jobs: context: . file: ./Dockerfile # On spécifie le Dockerfile du serveur push: true - platforms: linux/amd64, linux/arm64 + #platforms: linux/amd64, linux/arm64 tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2:latest # --- Build N°2 : L'Interface Utilisateur (UI) --- @@ -105,7 +105,7 @@ jobs: context: . file: ./Dockerfile_WebUI # On spécifie le Dockerfile de la UI push: true - platforms: linux/amd64, linux/arm64 + #platforms: linux/amd64, linux/arm64 tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:latest From 7ab8d3012018616ddc10b7714e03a0ce46242eae Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Tue, 24 Jun 2025 02:12:22 +0200 Subject: [PATCH 17/18] Bug: Mismatched build argument in WebUI Dockerfile prevents API URL configuration --- Dockerfile_WebUI | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile_WebUI b/Dockerfile_WebUI index db1c35cd..87f7fd06 100644 --- a/Dockerfile_WebUI +++ b/Dockerfile_WebUI @@ -4,8 +4,8 @@ COPY ./WebUI /usr/src/webui WORKDIR /usr/src/webui RUN yarn install RUN npx browserslist@latest --update-db -ARG VUE_APP_API_URL -ENV VUE_APP_API_URL=${VUE_APP_API_URL:-http://localhost:8080} +ARG VUE_APP_RESTAPI_URL +ENV VUE_APP_RESTAPI_URL=${VUE_APP_RESTAPI_URL:-http://localhost:8080} RUN yarn run build FROM nginx:stable-alpine From ecd515772e8c38e4780b2229a4f4da3009b4232d Mon Sep 17 00:00:00 2001 From: Hamza TEI Date: Tue, 24 Jun 2025 02:15:22 +0200 Subject: [PATCH 18/18] fix: remove build from this branch --- .github/workflows/docker-build.yml | 124 ----------------------------- 1 file changed, 124 deletions(-) delete mode 100644 .github/workflows/docker-build.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml deleted file mode 100644 index cc398f51..00000000 --- a/.github/workflows/docker-build.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Check source, Build and Push Image - -on: - # Se déclenche tous les jours à 3h du matin (vous pouvez ajuster) - schedule: - - cron: '0 3 * * *' - # Permet aussi de le lancer manuellement pour tester - workflow_dispatch: - -jobs: - check-build-and-push: - # On peut le laisser sur ubuntu-latest car même le build Docker - # est exécuté par notre runner self-hosted si on le spécifie au niveau du job. - # Mais pour plus de clarté, mettons-le sur votre runner. - runs-on: self-hosted - - permissions: - # Donne la permission de créer des releases sur votre fork (pour marquer le succès) - contents: write - - steps: - # === PARTIE 1 : Le Gardien === - - name: Get latest upstream release tag - id: upstream_release - run: | - LATEST_TAG=$(curl -sL "https://api.github.com/repos/OpenAS2/OpenAs2App/releases/latest" | jq -r ".tag_name") - if [ -z "$LATEST_TAG" ] || [ "$LATEST_TAG" == "null" ]; then echo "Could not fetch latest upstream tag. Exiting."; exit 1; fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - - name: Get latest self fork release tag - id: self_release - run: | - LATEST_TAG=$(curl -sL "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r ".tag_name") - if [ "$LATEST_TAG" == "null" ] || [ -z "$LATEST_TAG" ]; then LATEST_TAG="v0.0.0"; fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - - name: Compare tags and decide to proceed - id: decision - run: | - echo "Upstream tag: ${{ steps.upstream_release.outputs.tag }}" - echo "Our latest tag: ${{ steps.self_release.outputs.tag }}" - if [ "${{ steps.upstream_release.outputs.tag }}" == "${{ steps.self_release.outputs.tag }}" ]; then - echo "Tags are the same. Nothing to do." - echo "proceed=false" >> $GITHUB_OUTPUT - else - echo "New upstream release found! Proceeding to build." - echo "proceed=true" >> $GITHUB_OUTPUT - fi - - # === PARTIE 2 : Le Bâtisseur (ne s'exécute que si une nouvelle version est trouvée) === - - # On utilise le tag de la nouvelle release pour faire le checkout - - name: Checkout specific release tag - if: steps.decision.outputs.proceed == 'true' - uses: actions/checkout@v4 - with: - repository: OpenAS2/OpenAs2App # On checkout le dépôt original directement - ref: ${{ steps.upstream_release.outputs.tag }} # Au tag de la nouvelle release ! - - - name: Log in to Docker Hub - if: steps.decision.outputs.proceed == 'true' - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - if: steps.decision.outputs.proceed == 'true' - id: meta - uses: docker/metadata-action@v5 - with: - # Le nom de base de votre image reste le même - images: ${{ secrets.DOCKERHUB_USERNAME }}/openas2 - # On définit les tags manuellement à partir des résultats des étapes précédentes - tags: | - ${{ steps.upstream_release.outputs.tag }} - - # Étape A : On met en place QEMU pour permettre l'émulation d'architectures - - name: Set up QEMU - if: steps.decision.outputs.proceed == 'true' - uses: docker/setup-qemu-action@v3 - - # Étape B : On initialise le bâtisseur Docker Buildx - - name: Set up Docker Buildx - if: steps.decision.outputs.proceed == 'true' - id: buildx - uses: docker/setup-buildx-action@v3 - - # --- Build N°1 : Le Serveur --- - - name: Build and push SERVER Docker image - if: steps.decision.outputs.proceed == 'true' - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile # On spécifie le Dockerfile du serveur - push: true - #platforms: linux/amd64, linux/arm64 - tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2:latest - - # --- Build N°2 : L'Interface Utilisateur (UI) --- - - name: Build and push WEBUI Docker image - if: steps.decision.outputs.proceed == 'true' - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile_WebUI # On spécifie le Dockerfile de la UI - push: true - #platforms: linux/amd64, linux/arm64 - tags: ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:${{ steps.upstream_release.outputs.tag }}, ${{ secrets.DOCKERHUB_USERNAME }}/openas2-webui:latest - - - # === PARTIE 3 : Marquer le succès === - - # On crée la release sur notre fork APRÈS le build réussi, pour garder une trace. - - name: Create new release on fork to mark success - if: steps.decision.outputs.proceed == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - UPSTREAM_TAG: ${{ steps.upstream_release.outputs.tag }} - run: | - gh release create "$UPSTREAM_TAG" \ - --repo "$GITHUB_REPOSITORY" \ - --title "Build successful for upstream: $UPSTREAM_TAG" \ - --notes "Automated release after a successful build and push of image with tag $UPSTREAM_TAG."