Refactor Dockerfile and Makefile for improved build process and testing #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Image GHCR sur push main (chemins applicatifs + Docker), sur le modèle de sesame-orchestrator/.github/workflows/docker-image.yml. | |
| name: Docker image | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "Dockerfile" | |
| - "Dockerfile.test" | |
| - ".github/workflows/docker-image.yml" | |
| - "package.json" | |
| - "yarn.lock" | |
| - "tsconfig.json" | |
| - "nuxt.config.ts" | |
| - "start.mjs" | |
| - "src/**" | |
| - "tests/**" | |
| - "playwright.config.ts" | |
| - "vitest.config.ts" | |
| env: | |
| REGISTRY: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| jobs: | |
| build-and-push-image: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: yarn | |
| - name: Install dependencies | |
| run: yarn install --frozen-lockfile | |
| - name: Lint and unit tests | |
| run: yarn lint && yarn test:unit | |
| - name: Log in to the Container registry | |
| uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
| with: | |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
| - name: Extract version and commit info | |
| id: version | |
| run: | | |
| echo "version=$(jq -r .version package.json)" >> "$GITHUB_OUTPUT" | |
| echo "build_id=${{ github.sha }}" >> "$GITHUB_OUTPUT" | |
| - name: Build and push Docker image | |
| uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | |
| with: | |
| context: . | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| platforms: linux/amd64 | |
| build-args: | | |
| BUILD_VERSION=${{ steps.version.outputs.version }}-${{ steps.version.outputs.build_id }} | |
| GIT_BRANCH=${{ github.ref_name }} | |
| GIT_COMMIT=${{ github.sha }} | |
| DOCKER_TAG=${{ steps.version.outputs.version }}-${{ steps.version.outputs.build_id }} |