Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.99 KiB
Newer Older
Jennifer Mankoff's avatar
Jennifer Mankoff committed
image: timbru31/ruby-node:3.2

stages:
  - build
  - predeploy
  - generatepdf
  - afterdeploy
Jennifer Mankoff's avatar
Jennifer Mankoff committed

cache:
  paths:
  - vendor/

variables:
  GIT_SUBMODULE_STRATEGY: recursive
  JEKYLL_ENV: production

before_script:
  - export LANG=en_US.UTF-8
  - export LANGUAGE=en_US:en
  - export LC_ALL=en_US.UTF-8
Jennifer Mankoff's avatar
Jennifer Mankoff committed
  - export BUNDLE_PATH=~
  - mv index-ugrad.md index.md
  - mv assignments/index-ugrad.md assignments/index.md
  - mv assignments/project-proposals-ugrad.md assignments/project-proposals.md
  - mv slides/introduction-quals.html slides/introduction.html
Jennifer Mankoff's avatar
Jennifer Mankoff committed
  - bundle config set --local path ~
build_production:
    stage: build
Jennifer Mankoff's avatar
Jennifer Mankoff committed
    tags:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
    script:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - bundle install
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - cp _config_production.yml _config.yml
        - cp _layouts/presentation_production.html _layouts/presentation.html
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - bundle exec jekyll build -d public 
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        quarter: yyqq
        course: classnum
        source_path: public
    only:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - CLASS-YYqq
    artifacts:
        paths:
            - public/

pre_deploy_production:
    stage: predeploy
    tags:
        - courseweb
    dependencies:
        - build_production
    script:
        - /www/utils/deploycourseweb.sh
    variables:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        quarter: yyqq
        course: classnum
        source_path: public
    only:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - CLASS-yyqq

generate_pdf:
    stage: generatepdf
    tags:
        - build
    timeout: 3 hours 30 minutes
    dependencies:
        - build_production
    script:
        - bundle install --path vendor
        - script/deployslidepdf
    variables:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        quarter: yyqq
        course: classnum
        source_path: public
    only:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - CLASS-yyqq
    artifacts:
        paths:
            - public/

after_deploy_production:
    stage: afterdeploy
    tags:
        - courseweb
    dependencies:
        - generate_pdf
    script:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - /www/utils/deploycourseweb.sh
    variables:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        quarter: yyqq
        course: classnum
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        source_path: public
    only:
Jennifer Mankoff's avatar
Jennifer Mankoff committed
        - CLASS-YYqq