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 start > server.log 2>&1 & - run: tail -n 20 server.log - run: wait-on http://localhost:3000 --timeout 60000 - run: curl -f http://localhost:3000 || (cat server.log && exit 1) 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##*/}