Tried to deploy site with html + scss to gitlab and have no idea how to do that

1.1k views Asked by At

Everything I've tried already didn't work for me (several sites and videos on youtube). Please, link me with another useful videos or help me understand this process. I found it much easier to deploy the site to GitHub with gh-pages, but I have problems with deploying to GitLab.

Already tried to push my project to GitLab and then CI/CD > Pipelines, where my project built successfully, then Settings > Pages and still 404 (waited more than 1 day). I have installed the ".gitlab-ci.yml" file (with basic HTML settings).

BTW, should I push the pre-built site or already converted?

Right now it is like this:

 - src
    - fonts
    - html
    - images
    - js
    - sass
    index.html
 .gitattributes
 .gitignore
 .gitlab-ci.yml
 LICENSE
 README.md

EDIT: I found solution for my specific problem. As GitLab Pages is a static hosting, before deploying sass files, you need to compile them first and only after you should deploy. Here is my gitlab-ci.yml file.

image: alpine:latest

stages:
    - compile
    - deploy
    
compile:
  stage: compile
  image: node:8.15-alpine
  script:
    - yarn global add node-sass
    - node-sass ./src/sass/main.scss ./src/css/styles.css --style compressed
  only:
      - master
  artifacts:
    paths:
      - ./src/css

pages:
  stage: deploy
  script:
  - mv src/ public
  artifacts:
    paths:
    - public

At stage compile notice how i point to my main.scss file path which could be different for you. Also there is path for compiled file styles.css (you need to use your file name of css styles, that is mentioned in <head> section of your main html file). Check path at the artifacts line as well, so you could properly direct your files. For compilation, as you can see, i'm using Yarn (there is no need to install anything to use it). After compiling my sass file, the next stage is to deploy, which works for me as planned.

Hope it helps you as well!

1

There are 1 answers

6
makozaki On BEST ANSWER

To successfully host your page on Gitlab you need to move your sources to public directory and archive it. Example .gitlab-ci.yml could be:

image: alpine:latest

pages:
  stage: deploy
  script:
  - mv src/ public
  artifacts:
    paths:
    - public