diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..503118a63d53fd11bb65cd93fed939a273d31e8f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,43 @@ +image: alpine + +stages: + - deploy + +variables: + ENV_FILE: ".env" + +deploy_to_remote_server: + stage: deploy + before_script: + - apk add --no-cache rsync openssh + - mkdir -p ~/.ssh + - echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_rsa + - chmod 600 ~/.ssh/id_rsa + - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config + script: + - echo $SERVER_USER + - echo $SERVER_IP + - echo $REMOTE_DIR + + # Create .env file + - echo "MODEL_ID=$MODEL_ID" > $ENV_FILE + - echo "START_DATE=$START_DATE" >> $ENV_FILE + - echo "END_DATE=$END_DATE" >> $ENV_FILE + - echo "HOME_DIR=$HOME_DIR" >> $ENV_FILE + - echo "WEATHER_DATA_DIR=$WEATHER_DATA_DIR" >> $ENV_FILE + - echo "WEATHER_DATA_FILENAME_PATTERN=$WEATHER_DATA_FILENAME_PATTERN" >> $ENV_FILE + - echo "WEATHER_DATA_FILENAME_DATEFORMAT=$WEATHER_DATA_FILENAME_DATEFORMAT" >> $ENV_FILE + - echo "LOCAL_TIMEZONE=$LOCAL_TIMEZONE" >> $ENV_FILE + - echo "DATA_DIR=$DATA_DIR" >> $ENV_FILE + - echo "MAPFILE_DIR=$MAPFILE_DIR" >> $ENV_FILE + - echo "MAPSERVER_DATA_DIR=$MAPSERVER_DATA_DIR" >> $ENV_FILE + - echo "MAPSERVER_MAPFILE_DIR=$MAPSERVER_MAPFILE_DIR" >> $ENV_FILE + - echo "MAPSERVER_LOG_FILE=$MAPSERVER_LOG_FILE" >> $ENV_FILE + - echo "MAPSERVER_IMAGE_PATH=$MAPSERVER_IMAGE_PATH" >> $ENV_FILE + - echo "MAPSERVER_EXTENT=$MAPSERVER_EXTENT" >> $ENV_FILE + + # Copy files to server + - rsync -avz --progress $ENV_FILE $MODEL_ID.cfg $MODEL_ID.py run_$MODEL_ID.sh test_$MODEL_ID.py requirements.txt requirements.txt $SERVER_USER@$SERVER_IP:$HOME_DIR + - rsync -avz --progress --rsync-path="mkdir -p $HOME_DIR/mapfile && rsync" mapfile/ $SERVER_USER@$SERVER_IP:$HOME_DIR/mapfile/ + only: + - release