32 lines
1.2 KiB
YAML
32 lines
1.2 KiB
YAML
# Using the node alpine image to build the React app
|
|
image: node:alpine
|
|
|
|
# Announce the URL as per CRA docs
|
|
# https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#advanced-configuration
|
|
variables:
|
|
PUBLIC_URL: /myems
|
|
# Cache node modules - speeds up future builds
|
|
cache:
|
|
paths:
|
|
- node_modules
|
|
|
|
# Name the stages involved in the pipeline
|
|
stages:
|
|
- deploy
|
|
|
|
# Job name for gitlab to recognise this results in assets for Gitlab Pages
|
|
# https://docs.gitlab.com/ee/user/project/pages/introduction.html#gitlab-pages-requirements
|
|
pages:
|
|
stage: deploy
|
|
script:
|
|
- npm install # Install all dependencies
|
|
- npm run build --prod # Build for prod
|
|
- mv public _public # CRA and gitlab pages both use the public folder. Only do this in a build pipeline.
|
|
- mv build public # Move build files to public dir for Gitlab Pages
|
|
- cp public/index.html public/404.html # Required for react router browser history, but helps with https://blog.pshrmn.com/how-single-page-applications-work/
|
|
artifacts:
|
|
paths:
|
|
- public # The built files for Gitlab Pages to serve
|
|
only:
|
|
- master # Only run on master branch
|