stages: - build - deploy variables: GIT_SSL_NO_VERIFY: 'true' GIT_STRATEGY: clone build: stage: build when: manual image: node:21 artifacts: expire_in: 1 day paths: - aktivisda-core/dist variables: PUBLIC_PATH: $ROOT_URL script: - echo "building app for any push on any branch or for release tags..." - git clone --depth 1 https://framagit.org/aktivisda/aktivisda.git -b $(python3 -c "import json; x = json.load(open('local/config.json', 'r')); print(x['aktivisda']['ref'] if 'aktivisda' in x else 'main')") aktivisda-core - cd aktivisda-core/aktivisda-library - npm install - npm run build - cd .. - npm install - cd .. - npm run build:aktivisda - npm run build:backtivisda rules: - if: $CI_PIPELINE_SOURCE == "schedule" when: never - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH when: never - when: always ########## # Deploy # ########## deploy-server: stage: deploy image: debian:13 before_script: script: - apt-get update - apt-get install -y lftp - lftp -e "set ssl:verify-certificate no;set sftp:auto-confirm yes;open sftp://$FTP_HOST -p $FTP_PORT; user $FTP_USER $FTP_PASSWORD; mirror --reverse --verbose --delete aktivisda-core/dist/aktivisda $REMOTE_DIR;exit" - lftp -e "set ssl:verify-certificate no;set sftp:auto-confirm yes;open sftp://$FTP_HOST -p $FTP_PORT; user $FTP_USER $FTP_PASSWORD; mirror --reverse --verbose --delete aktivisda-core/dist/backtivisda $REMOTE_DIR/backtivisda;exit" needs: ['build'] dependencies: ['build'] rules: - if: $CI_PIPELINE_SOURCE == "schedule" when: never - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH when: never - when: always deploy-server-ssh: stage: deploy image: alpine:latest needs: ['build'] dependencies: ['build'] script: - apk update && apk add openssh && apk add rsync - eval $(ssh-agent -s) - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$PROD_SSH_KEY" | tr -d '\r' | ssh-add - > /dev/null - ssh-keyscan -p $FTP_PORT $FTP_HOSTNAME >> ~/.ssh/known_hosts 2> /dev/null - chmod 644 ~/.ssh/known_hosts - FTP_SERVER="$FTP_USER@$FTP_HOSTNAME" - rsync -e "ssh -p $FTP_PORT" -avz --stats --delete-after aktivisda-core/dist/aktivisda/ $FTP_SERVER:./www; - rsync -e "ssh -p $FTP_PORT" -avz --stats --delete-after aktivisda-core/dist/backtivisda/ $FTP_SERVER:./www/backtivisda; - ssh -p $FTP_PORT $FTP_SERVER "chmod a+r * -R" rules: - if: $CI_PIPELINE_SOURCE == "schedule" when: never - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH when: never - when: always