From cb20f5d611fcd1b367dcf62be5793412f8ab0f0a 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 | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..ced85ded7 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,71 @@ +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 + +workflow: + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + - if: $CI_PIPELINE_SOURCE == "web" + - if: $CI_COMMIT_BRANCH == "main" + +build: + stage: build + before_script: + - apk add --no-cache curl zip + script: + - curl $TEMPLATE_DOWNLOAD_URL -o $TEMPLATE_FILENAME + - unzip -o $TEMPLATE_FILENAME + - 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 + artifacts: + name: "$CI_COMMIT_REF_SLUG" + expire_in: 1 day + paths: + - dist + environment: + 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 + +# 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