From cdd840e5c71461e180265b9be11dc8f857c975d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20St=C3=BCckler?= <moritz@bitbetter.de> Date: Fri, 17 Feb 2023 14:56:03 +0100 Subject: [PATCH] feat: add gitlab pipeline --- .gitlab-ci.yml | 88 ++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b75a85069..a68ab7f6a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,6 @@ image: node:alpine variables: TEMPLATE_DOWNLOAD_URL: https://gitlab.fabcity.hamburg/fcos-suite/fcos-suite-astro/-/archive/main/fcos-suite-astro-main.zip TEMPLATE_FILENAME: template.zip - GIT_DEPTH: 1 workflow: rules: @@ -14,21 +13,20 @@ workflow: build: stage: build before_script: - - apk add --no-cache curl zip + - apk add --no-cache curl zip rsync script: - curl $TEMPLATE_DOWNLOAD_URL -o $TEMPLATE_FILENAME - unzip -o $TEMPLATE_FILENAME - - mv fcos-suite-astro-main/{.*,*} . - - ls -la - # Replacing the whole Astro config is a temporary workaround b/c Astro - # currently doesn't support env variables inside of the config file. - # See: https://github.com/withastro/astro/issues/3897 - - # - echo "$ASTRO_CONFIG" > astro.config.mjs - # - echo "$NPM_RC" > .npmrc - # # - cat astro.config.mjs - # - npm ci - # - npm run build + - rm $TEMPLATE_FILENAME + - rsync -va --exclude="src/pages" --exclude="public" --exclude ".git" fcos-suite-astro-main/ . + - rm -rf fcos-suite-astro-main + # Replacing the whole Astro config is a temporary workaround b/c Astro + # currently doesn't support env variables inside of the config file. + # See: https://github.com/withastro/astro/issues/3897 + - echo "$ASTRO_CONFIG" > astro.config.mjs + - cat astro.config.mjs + - npm ci + - npm run build artifacts: name: "$CI_COMMIT_REF_SLUG" expire_in: 1 day @@ -38,36 +36,36 @@ build: name: $CI_COMMIT_REF_SLUG url: $TARGET_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG -# deploy: -# stage: deploy -# variables: -# GIT_STRATEGY: none -# before_script: -# - apk update -# - apk add --no-cache lftp openssh -# - mkdir -p ~/.ssh -# - echo "$HTACCESS" >> dist/.htaccess -# - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts -# - echo "Deploying for branch $CI_COMMIT_REF_SLUG – will be available at 🌎 $TARGET_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG" -# script: -# - lftp -e "set ftp:list-options -a; set net:timeout 5; set net:max-retries 3; set net:reconnect-interval-base 5; open sftp://$SFTP_HOST; user $SFTP_USER $SFTP_PASSWORD; mirror --exclude .well-known/ --reverse --delete ./dist/ $SFTP_FOLDER/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG/; bye" -# environment: -# name: $CI_COMMIT_REF_SLUG -# url: $TARGET_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG -# on_stop: delete +deploy: + stage: deploy + variables: + GIT_STRATEGY: none + before_script: + - apk update + - apk add --no-cache lftp openssh + - mkdir -p ~/.ssh + - echo "$HTACCESS" >> dist/.htaccess + - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts + - echo "Deploying for branch $CI_COMMIT_REF_SLUG – will be available at 🌎 $TARGET_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG" + script: + - lftp -e "set ftp:list-options -a; set net:timeout 5; set net:max-retries 3; set net:reconnect-interval-base 5; open sftp://$SFTP_HOST; user $SFTP_USER $SFTP_PASSWORD; mirror --exclude .well-known/ --reverse --delete ./dist/ $SFTP_FOLDER/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG/; bye" + environment: + name: $CI_COMMIT_REF_SLUG + url: $TARGET_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG + on_stop: delete -# delete: -# stage: deploy -# variables: -# GIT_STRATEGY: none -# before_script: -# - apk update -# - apk add --no-cache lftp openssh -# - mkdir -p ~/.ssh -# - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts -# script: -# - lftp -e "set ftp:list-options -a; set net:timeout 5; set net:max-retries 3; set net:reconnect-interval-base 5; open sftp://$SFTP_HOST; user $SFTP_USER $SFTP_PASSWORD; rm -r $SFTP_FOLDER/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG/; bye" -# when: manual -# environment: -# name: $CI_COMMIT_REF_SLUG -# action: stop +delete: + stage: deploy + variables: + GIT_STRATEGY: none + before_script: + - apk update + - apk add --no-cache lftp openssh + - mkdir -p ~/.ssh + - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts + script: + - lftp -e "set ftp:list-options -a; set net:timeout 5; set net:max-retries 3; set net:reconnect-interval-base 5; open sftp://$SFTP_HOST; user $SFTP_USER $SFTP_PASSWORD; rm -r $SFTP_FOLDER/$CI_PROJECT_NAME/$CI_COMMIT_REF_SLUG/; bye" + when: manual + environment: + name: $CI_COMMIT_REF_SLUG + action: stop -- GitLab