stages: - prepare - build - deploy default: image: kroniak/ssh-client interruptible: true before_script: - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - chmod 400 ~/.ssh/id_rsa # Vercel vercel: image: node:18-alpine stage: deploy dependencies: [] rules: - if: $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "develop" && $CI_COMMIT_BRANCH !~ /^release/ when: manual script: - npm install --global vercel - vercel pull --yes --environment=preview --token=$VERCEL_TOKEN - vercel build --token=$VERCEL_TOKEN - vercel deploy --prebuilt --token=$VERCEL_TOKEN environment: name: vercel # Storybook storybook: stage: deploy rules: - if: $CI_COMMIT_BRANCH == "develop" when: manual variables: SSH_PRIVATE_KEY: $STAGING_SSH_PRIVATE_KEY script: - tar -czf sources.tar.gz . - scp -r sources.tar.gz $STAGING_USER@$STAGING_SERVER:/amwork/storybook - ssh $STAGING_USER@$STAGING_SERVER "cd /amwork/storybook && ./deploy.sh" environment: name: staging url: https://amwork.dev .prepare_script: &prepare_script - tar -czf sources.tar.gz . - scp -r sources.tar.gz $USER@$SERVER:$FOLDER .build_script: &build_script - ssh $USER@$SERVER "cd $FOLDER && ./build.sh" .deploy_script: &deploy_script - ssh $USER@$SERVER "cd $FOLDER && ./deploy.sh && ./update-version.sh" .staging_job: rules: - if: $CI_COMMIT_BRANCH == "develop" variables: SSH_PRIVATE_KEY: $STAGING_SSH_PRIVATE_KEY USER: $STAGING_USER SERVER: $STAGING_SERVER FOLDER: /amwork/frontend environment: name: staging url: https://amwork.dev .amwork_job: rules: - if: $CI_COMMIT_BRANCH == "main" variables: SSH_PRIVATE_KEY: $AMWORK_PROD_SSH_PRIVATE_KEY USER: $AMWORK_PROD_USER SERVER: $AMWORK_PROD_SERVER FOLDER: /amwork/frontend environment: name: production/amwork url: https://amwork.com .mywork_job: rules: - if: $CI_COMMIT_BRANCH == "main" variables: SSH_PRIVATE_KEY: $MYWORK_PROD_SSH_PRIVATE_KEY USER: $MYWORK_PROD_USER SERVER: $MYWORK_PROD_SERVER FOLDER: /mywork/frontend environment: name: production/mywork url: https://mywork.app # Staging staging_prepare: extends: .staging_job stage: prepare script: *prepare_script staging_build: extends: .staging_job stage: build variables: GIT_STRATEGY: none script: *build_script staging_deploy: extends: .staging_job stage: deploy variables: GIT_STRATEGY: none script: *deploy_script # Amwork Production amwork_prepare: extends: .amwork_job stage: prepare script: *prepare_script amwork_build: extends: .amwork_job stage: build variables: GIT_STRATEGY: none script: *build_script amwork_deploy: extends: .amwork_job stage: deploy when: manual variables: GIT_STRATEGY: none script: *deploy_script # Mywork Production mywork_prepare: extends: .mywork_job stage: prepare variables: FOLDER: /apps/mywork/frontend script: *prepare_script mywork_build: extends: .mywork_job stage: build variables: GIT_STRATEGY: none FOLDER: /apps/mywork/frontend script: *build_script mywork_deploy: extends: .mywork_job stage: deploy when: manual variables: GIT_STRATEGY: none FOLDER: /apps/mywork/frontend script: *deploy_script # Platforma500 Production platforma500_prepare: extends: .mywork_job stage: prepare needs: [mywork_prepare] variables: FOLDER: /apps/platforma500/frontend script: *prepare_script platforma500_build: extends: .mywork_job stage: build needs: [mywork_build] variables: GIT_STRATEGY: none FOLDER: /apps/platforma500/frontend script: *build_script platforma500_deploy: extends: .mywork_job stage: deploy when: manual variables: GIT_STRATEGY: none FOLDER: /apps/platforma500/frontend script: *deploy_script