.only-default: &only-default only: - release - master - merge_requests .set_env_variables: &set_env_variables - | if [ "$CI_COMMIT_BRANCH" == "master" ]; then REACT_APP_ENVIRONMENT="PRODUCTION" elif [ "$CI_COMMIT_BRANCH" == "release" ]; then REACT_APP_ENVIRONMENT="STAGING" REACT_APP_BASE_URL="https://release-api.appsmith.com" else REACT_APP_ENVIRONMENT="DEVELOPMENT" REACT_APP_BASE_URL="https://release-api.appsmith.com" fi image: cypress/base:10.16.3 variables: npm_config_cache: "$CI_PROJECT_DIR/.npm" CYPRESS_CACHE_FOLDER: "$CI_PROJECT_DIR/cache/Cypress" DOCKER_DRIVER: overlay DOCKER_IMAGE_NAME: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA cache: key: ${CI_COMMIT_REF_SLUG} paths: - .npm - cache/Cypress - node_modules stages: - build - test - package - deploy react-build-release: stage: build script: - *set_env_variables - yarn install # show where the Cypress test runner binaries are cached - $(npm bin)/cypress cache path # show all installed versions of Cypress binary - $(npm bin)/cypress cache list - $(npm bin)/cypress verify - REACT_APP_ENVIRONMENT=$REACT_APP_ENVIRONMENT REACT_APP_BASE_URL=$REACT_APP_BASE_URL GIT_SHA=$CI_COMMIT_SHORT_SHA yarn build artifacts: expire_in: 1 week paths: - build/ only: - release - merge_requests cypress-test-release: stage: test script: - *set_env_variables - yarn global add serve - serve -s build -p 3000 & # This is required in order to ensure that all the test cases pass - echo "127.0.0.1 dev.appsmith.com" >> /etc/hosts - yarn test artifacts: when: always expire_in: 1 week paths: - cypress/screenshots - cypress/videos only: # We don't test on master right now because of changing environment variables for REACT_APP_BASE_URL. Need to figure out a way to configure that. - release - merge_requests # cypress-test-fix: # stage: build # script: # - *set_env_variables # - yarn install # # show where the Cypress test runner binaries are cached # - $(npm bin)/cypress cache path # # show all installed versions of Cypress binary # - $(npm bin)/cypress cache list # - $(npm bin)/cypress verify # - curl https://s3.ap-south-1.amazonaws.com/dev.public.appsmith/react-build/build1.tar.gz --output build.tar.gz # - tar xvf build.tar.gz # - yarn global add serve # - serve -s build -p 3000 & # # This is required in order to ensure that all the test cases pass # - echo "127.0.0.1 dev.appsmith.com" >> /etc/hosts # - yarn test # artifacts: # when: always # expire_in: 1 week # paths: # - cypress/screenshots # - cypress/videos # only: # # We don't test on master right now because of changing environment variables for REACT_APP_BASE_URL. Need to figure out a way to configure that. # - fix/test-revert docker-package-release: image: docker:dind services: - docker:dind stage: package script: - *set_env_variables - docker build -t appsmith/appsmith-editor:release . - docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_ACCESS_TOKEN - docker push appsmith/appsmith-editor:release only: - release react-build-prod: stage: build script: - *set_env_variables - yarn install - REACT_APP_ENVIRONMENT=$REACT_APP_ENVIRONMENT GIT_SHA=$CI_COMMIT_SHORT_SHA yarn build artifacts: when: on_success expire_in: 1 week paths: - build/ only: - master docker-package-prod: image: docker:dind services: - docker:dind stage: package script: - *set_env_variables - docker build -t appsmith/appsmith-editor:latest . - docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_ACCESS_TOKEN - docker push appsmith/appsmith-editor:latest only: - master