Deploy to GitLab Pages - nogic1008/nuxt-ts-template GitHub Wiki

Deploy to GitLab Pages

If you want to clone this template into GitLab, GitLab Pages is a Continuous Deployment solution. It uses a same URL as GitHub Pages, like https://username.gitlab.io/project-slug, so it is easy.

Prerequisites

Setup GitLab CI/CD

Create .gitlab-ci.yml like below.

image: 'node:lts-alpine'
cache:
  key:
    files:
      - package-lock.json
    prefix: npm
  paths:
    - .cache/
  policy: pull

before_script:
  - npm config set cache $CI_PROJECT_DIR/.cache/npm --global
  - npm ci

build:
  stage: build
  only:
    - master
    - merge_requests
  except:
    changes:
      - '*.md'
  cache:
    key:
      files:
        - package-lock.json
      prefix: npm
    paths:
      - .cache/
  script: BASE_PATH=/$CI_PROJECT_NAME/ npm run generate

lint:
  only:
    - master
    - merge_requests
  except:
    changes:
      - '*.md'
  script: npm run lint

test:
  only:
    - master
    - merge_requests
  except:
    changes:
      - '*.md'
  script: npm test

pages:
  stage: deploy
  only:
    - master
  except:
    changes:
      - '*.md'
  script:
    - BASE_PATH=/$CI_PROJECT_NAME/ npm run generate
    - mv dist public
  artifacts:
    paths:
      - public

Point of View

  • Move and cache global .npm folder to use npm ci
  • Set BASE_PATH before build command
  • Move /dist folder to /public folder for GitLab Pages

Remove GitHub Actions workflow (optional)

Remove /.github and /.dependabot folder.