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