diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f829f049..ea03424c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,61 +2,24 @@ stages: - build - deploy -variables: - DOCKER_BUILDKIT: "1" - COMPOSE_DOCKER_CLI_BUILD: "1" - DOCKER_DRIVER: overlay2 - BUILDKIT_PROGRESS: plain - IMAGE_NAME: "$CI_REGISTRY_IMAGE/web-lti:development_${CI_COMMIT_SHORT_SHA}" - NODE_ENV: "production" - HUSKY_SKIP_INSTALL: "1" - NEXT_PUBLIC_API_BASE_URL: "${NEXT_PUBLIC_API_BASE_URL}" - NEXT_PUBLIC_LTI_API_START_URL: "${NEXT_PUBLIC_LTI_API_START_URL}" - -build-image: +build_static: stage: build - image: docker:27.0.3 - services: - - docker:dind - - before_script: - - echo "Login to registry" - - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - + image: node:18-alpine script: - - | - docker build \ - --build-arg NEXT_PUBLIC_API_BASE_URL="$NEXT_PUBLIC_API_BASE_URL" \ - --build-arg NEXT_PUBLIC_LTI_API_START_URL="$NEXT_PUBLIC_LTI_API_START_URL" \ - --build-arg NODE_ENV="$NODE_ENV" \ - --build-arg HUSKY_SKIP_INSTALL="$HUSKY_SKIP_INSTALL" \ - --cache-from "$CI_REGISTRY_IMAGE/web-lti:latest" \ - -t "$IMAGE_NAME" . - - docker push "$IMAGE_NAME" - - docker image prune -af --filter "until=72h" + - npm ci + - npx next build + - npx next export + artifacts: + paths: + - out/ + expire_in: 1 hour + only: + - devops-s3 - after_script: "echo 'Build complete: $IMAGE_NAME' && docker system prune -af || true && docker volume prune -f || true" - - rules: - - if: '$CI_COMMIT_BRANCH == "development"' - -deploy-dev: +deploy_s3: stage: deploy - image: alpine:3.20 - - before_script: - - apk add --no-cache openssh curl - - mkdir -p ~/.ssh - - echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/id_rsa - - chmod 600 ~/.ssh/id_rsa - - eval $(ssh-agent -s) - - ssh-add ~/.ssh/id_rsa - - ssh-keyscan -H "$SERVER_IP" >> ~/.ssh/known_hosts - + image: amazon/aws-cli:latest script: - - ssh -o StrictHostKeyChecking=no \"$SERVER_USER@$SERVER_IP\" \"docker stop dev-web-lti || true && docker rm dev-web-lti || true && docker pull $CI_REGISTRY_IMAGE/web-lti:development_${CI_COMMIT_SHORT_SHA} && docker run -d --name dev-web-lti --network dev-lti-network -p 3002:3000 $CI_REGISTRY_IMAGE/web-lti:development_${CI_COMMIT_SHORT_SHA}\" - - after_script: "echo 'Deploy finished for $IMAGE_NAME'" - - rules: - - if: '$CI_COMMIT_BRANCH == "development"' \ No newline at end of file + - aws s3 sync out/ s3://$S3_BUCKET/ --delete + only: + - devops-s3 \ No newline at end of file