diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index f6e0535..fe4c354 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,37 +1,37 @@ name: Release on: - push: - branches: - - main + release: + types: [published] jobs: - bump-version: + docker: + name: Build & push Docker image runs-on: ubuntu-latest - permissions: - contents: write steps: - name: Checkout - uses: actions/checkout@v4 + uses: https://github.com/actions/checkout@v4 + + - name: Set up Docker Buildx + uses: https://github.com/docker/setup-buildx-action@v3 + + - name: Login to Gitea container registry + uses: https://github.com/docker/login-action@v3 with: - fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} + registry: git.goutailler-olivier.com + username: ${{ gitea.actor }} + password: ${{ secrets.RELEASE_TOKEN }} - - name: Setup Node.js - uses: actions/setup-node@v4 + - name: Set lowercase repo name + id: repo + run: echo "name=$(echo '${{ gitea.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT + + - name: Build and push + uses: https://github.com/docker/build-push-action@v6 with: - node-version: '22' - - - name: Configure git - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - - name: Bump patch version - run: npm version patch -m "chore: bump version to %s [skip ci]" - - - name: Push version commit and tag - run: | - git push - git push --tags + context: . + push: true + tags: | + git.goutailler-olivier.com/${{ steps.repo.outputs.name }}:${{ gitea.ref_name }} + git.goutailler-olivier.com/${{ steps.repo.outputs.name }}:latest diff --git a/.gitea/workflows/sync-develop.yml b/.gitea/workflows/sync-develop.yml new file mode 100644 index 0000000..cb7cc34 --- /dev/null +++ b/.gitea/workflows/sync-develop.yml @@ -0,0 +1,37 @@ +name: Sync release into develop + +on: + pull_request: + types: + - closed + branches: + - main + +jobs: + sync-develop: + if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/') + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: https://github.com/actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.RELEASE_TOKEN }} + + - name: Install curl + run: apk add --no-cache curl + + - name: Create PR release → develop + run: | + RELEASE_BRANCH="${{ github.event.pull_request.head.ref }}" + + curl --fail-with-body -X POST \ + -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "{ + \"title\": \"chore: sync ${RELEASE_BRANCH} into develop\", + \"head\": \"${RELEASE_BRANCH}\", + \"base\": \"develop\", + \"body\": \"Synchronisation automatique après merge de ${RELEASE_BRANCH} dans main.\" + }" \ + "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/pulls" diff --git a/angular.json b/angular.json index 6f2761e..f5974fd 100644 --- a/angular.json +++ b/angular.json @@ -60,6 +60,9 @@ }, "serve": { "builder": "@angular/build:dev-server", + "options": { + "proxyConfig": "proxy.conf.json" + }, "configurations": { "production": { "buildTarget": "Bonsai-webapp:build:production" diff --git a/nginx.conf b/nginx.conf index 5db99a0..c1e1dfb 100644 --- a/nginx.conf +++ b/nginx.conf @@ -3,6 +3,14 @@ server { root /usr/share/nginx/html; index index.html; + location /api { + proxy_pass http://api:8080; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + location / { try_files $uri $uri/ /index.html; } diff --git a/proxy.conf.json b/proxy.conf.json new file mode 100644 index 0000000..975a708 --- /dev/null +++ b/proxy.conf.json @@ -0,0 +1,7 @@ +{ + "/api": { + "target": "http://localhost:8080", + "secure": false, + "changeOrigin": true + } +} diff --git a/src/app/issues/issues-api.service.ts b/src/app/issues/issues-api.service.ts index c54c79b..2348a32 100644 --- a/src/app/issues/issues-api.service.ts +++ b/src/app/issues/issues-api.service.ts @@ -3,7 +3,7 @@ import { Injectable, inject } from '@angular/core'; import { Observable } from 'rxjs'; import { IssueEntity } from './issues.store'; -export const API_BASE_URL = 'http://localhost:8080'; +export const API_BASE_URL = '/api'; @Injectable({ providedIn: 'root' }) export class IssuesApiService {