name: deploy to production

on: "push"
jobs:
    deploy:
        name: deploy
        runs-on: ubuntu-latest
        container:
            image: gitbase.de/actions/ubuntu:latest
            volumes:
                - /data:/data
        steps:
            - uses: actions/checkout@v3
              with:
                  fetch-depth: 0

            - name: setup node 18
              uses: actions/setup-node@v3
              # with:
              #    node-version: 18
              #     cache: yarn

            - name: install dependencies
              env:
                  FORCE_COLOR: "true"
              run: |
                  npm install -g yarn
                  yarn install

            - name: modify config
              run: |
                  sed -i 's#\(sentryEnvironment.*\)".*"#\1"${GITHUB_REF_NAME}"#g' frontend/src/config.ts
                  sed -i 's#//\( sentry\\.init.*\)#\1#g' frontend/src/config.ts
                  export $(cat .env | xargs)
                  echo "PROJECT_RELEASE=${RELEASE_PROJECT_SLUG}.r`git rev-list HEAD --count`-`git describe --all --long | sed 's+/+-+'`" >> .env
                  export $(cat .env | xargs)
                  echo ______ .env ______
                  cat .env
                  echo
                  sed -i 's#\(const release = \).*#\1"'${PROJECT_RELEASE}'"#g' api/hooks/config-client.js

                  # bash scripts/preload-meta.sh frontend/spa.html
                  # bash scripts/preload-meta.sh frontend/spa.html > frontend/_spa.html
                  # cp frontend/_spa.html frontend/spa.html

                  export stamp=`date +%s`
                  sed -i s/__TIMESTAMP__/$stamp/g frontend/spa.html
                  # sed -i s/__TIMESTAMP__/$stamp/g frontend/serviceworker.js
                  # cat frontend/serviceworker.js
                  # rm api/templates/spa.html
                  # cp frontend/spa.html api/templates/spa.html
                  echo ______ frontend/spa.html ______
                  cat frontend/spa.html

            - name: build
              env:
                  FORCE_COLOR: "true"
              run: |
                  yarn build

            #- name: build ssr
            #  env:
            #      FORCE_COLOR: "true"
            #  run: |
            #      yarn build:server

            - name: build legacy
              env:
                  FORCE_COLOR: "true"
              run: |
                  yarn build:legacy

            #- name: staging api testtest
            #  if: github.ref == 'refs/heads/dev'
            #  run: |
            #      targetDir=/data/${GITHUB_REPOSITORY}/${GITHUB_REF_NAME}
            #      mkdir -p targetDir
            #      rsync -av api $targetDir/
            #      mkdir -p $targetDir/frontend/dist
            #      rsync -av frontend/dist/ $targetDir/frontend/dist/
            #- name: staging frontend
            #  if: github.ref == 'refs/heads/dev'
            #  run: |
            #      docker compose -p ${GITHUB_REF_NAME}-${GITHUB_REPOSITORY_NAME}-${GITHUB_REPOSITORY_OWNER} up -d --build --remove-orphans

            - name: deploy
              if: github.ref == 'refs/heads/master'
              env:
                  RSYNC_USER: "allkids_rsync_master"
                  RSYNC_PASS: ${{ secrets.rsync_master }}
              run: |
                  scripts/deploy.sh ftp1.webmakers.de $RSYNC_USER $RSYNC_PASS