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 test # 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 te # 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: "fontis_rsync_master" RSYNC_PASS: ${{ secrets.rsync_master }} run: | scripts/deploy.sh ftp1.webmakers.de $RSYNC_USER $RSYNC_PASS