kind: pipeline
type: docker
name: "CI and Deploy on maxou.dev"

volumes:
    - name: server
      temp: {}

trigger:
    event:
        - push

steps:
    - image: node:latest
      name: "front CI"
      commands:
          - npm install
          - npm run tsc

    - image: node:latest
      name: "build react"
      volumes: &outputs
          - name: server
            path: /outputs
      depends_on:
          - "front CI"
      commands:
          -  # force to use the backend master branch if pushing on master
          - echo "VITE_API_ENDPOINT=https://iqball.maxou.dev/api/dotnet-$([ "$DRONE_BRANCH" = master ] && echo master || cat .stage-backend-branch | tr / _)" > .env.STAGE
          - npm run build -- --base=/$DRONE_BRANCH/ --mode STAGE
          - mv dist/* /outputs

    - image: eeacms/rsync:latest
      name: Deliver on staging server branch
      depends_on:
          - "build react"
      volumes: *outputs
      environment:
          SERVER_PRIVATE_KEY:
              from_secret: SERVER_PRIVATE_KEY
      commands:
          - chmod +x ci/deploy.sh
          - ci/deploy.sh
