name: Deploy App
on: [push]

jobs:
  build:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4

      # setup Node
      - uses: actions/setup-node@v4
        with:
          node-version: 20

      # installer pnpm globalement
      - run: npm install -g pnpm

      # install deps et build
      - run: pnpm install --frozen-lockfile
      - run: pnpm build

  test:
    runs-on: ubuntu-22.04
    needs: build
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: npm install -g pnpm wait-on
      - run: pnpm install --frozen-lockfile --prod
      - run: pnpm generate

  deploy:
    runs-on: ubuntu-22.04
    needs: test
    container:
      volumes:
        - /var/docker-web:/var/docker-web
    steps:
      - uses: actions/checkout@v4

      - name: Deploy with docker-web
        run: |
          APP_DIR=/var/docker-web/apps/${GITHUB_REPOSITORY##*/}
          mkdir -p $APP_DIR
          cp -a $(find . -mindepth 1 -maxdepth 1 ! -name '.git' ! -name 'node_modules') "$APP_DIR/"
          export COMPOSE_BAKE=false
          bash /var/docker-web/src/cli.sh up ${GITHUB_REPOSITORY##*/}
