Skip to content
Snippets Groups Projects
Select Git revision
  • 60f565dffe9bd504b11f5e5fee64ae9abdc7f7c9
  • master default protected
2 results

.gitlab-ci.yml

Blame
  • .gitlab-ci.yml 2.17 KiB
    variables:
      DART_SASS_VERSION: 1.81.0
      HUGO_VERSION: 0.139.2
      NODE_VERSION: 20.x
      CI_DEBUG_TRACE: true
      GIT_DEPTH: 0
      GIT_STRATEGY: clone
      GIT_SUBMODULE_STRATEGY: recursive
      TZ: Europe/London
      GIT_USER: "project_47_bot_9a59ab19c567101311c7ddc9f73941a5"
      GIT_EMAIL: "project_47_bot_9a59ab19c567101311c7ddc9f73941a5@noreply.git.rb9.xyz"
      GIT_NAME: "GitLab CI"
    
    image:
      name: golang:1.23.3-bookworm
    
    generate:
      stage: build
      image: python:3.11-bookworm
      script:
        - apt update
        - apt install -y git
        - echo "Generating site..."
        - python3 updatecontent.py
        - git config user.email "$GIT_EMAIL"
        - git config user.name "$GIT_NAME"
        - git remote add gitlab https://$GIT_USER:$GITLAB_TOKEN@git.rb9.xyz/TheJoeCoder/blog.git
        - git add .
        - git commit -m "Update Content" || echo "No changes to commit"
        - echo $CI_COMMIT_REF_NAME
        - git push gitlab HEAD:$CI_COMMIT_REF_NAME -o ci.skip
        
    
    pages:
      stage: deploy
      script:
        # Install brotli
        - apt-get update
        - apt-get install -y brotli
        # Install Dart Sass
        - curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz
        - tar -xf dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz
        - cp -r dart-sass/ /usr/local/bin
        - rm -rf dart-sass*
        - export PATH=/usr/local/bin/dart-sass:$PATH
        # Install Hugo
        - curl -LJO https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb
        - apt-get install -y ./hugo_extended_${HUGO_VERSION}_linux-amd64.deb
        - rm hugo_extended_${HUGO_VERSION}_linux-amd64.deb
        # Install Node.js
        - curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION} | bash -
        - apt-get install -y nodejs
        # Install Node.js dependencies
        - "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
        # Build
        - hugo --gc --minify
        # Compress
        - find public -type f -regex '.*\.\(css\|html\|js\|txt\|xml\)$' -exec gzip -f -k {} \;
        - find public -type f -regex '.*\.\(css\|html\|js\|txt\|xml\)$' -exec brotli -f -k {} \;
      artifacts:
        paths:
          - public
      rules:
        - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH