Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

swh:1:snp:6f474f17101e00174fb49dd87d5b016477d6f57c
  • Code
  • Branches (8)
  • Releases (0)
    • Branches
    • Releases
    • HEAD
    • refs/heads/argelia-2025
    • refs/heads/chunk/changes-1772292342099-1772292342099
    • refs/heads/circleci-migration
    • refs/heads/hugo
    • refs/heads/japon-2023
    • refs/heads/jbake
    • refs/heads/master
    • refs/heads/new-theme
    No releases to show
  • 4b79fa9
  • /
  • .circleci
  • /
  • config.yml
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
content badge
swh:1:cnt:26b34c2e3bbbd5b1c0c27e530edf9618abb78be6
directory badge
swh:1:dir:35b6ab128218c85506836bb7733f0497b92b1724
revision badge
swh:1:rev:740fe9ec73cbeb22984ecc748a7ffe1487eb9518
snapshot badge
swh:1:snp:6f474f17101e00174fb49dd87d5b016477d6f57c

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
Tip revision: 740fe9ec73cbeb22984ecc748a7ffe1487eb9518 authored by circleci-app[bot] on 28 February 2026, 15:26:20 UTC
fix(ci): correct Hugo build command flag syntax
Tip revision: 740fe9e
config.yml
# This configuration was automatically generated from a CircleCI 1.0 config.
# It should include any build commands you had along with commands that CircleCI
# inferred from your project structure. We strongly recommend you read all the
# comments in this file to understand the structure of CircleCI 2.0, as the idiom
# for configuration has changed substantially in 2.0 to allow arbitrary jobs rather
# than the prescribed lifecycle of 1.0. In general, we recommend using this generated
# configuration as a reference rather than using it in production, though in most
# cases it should duplicate the execution of your original 1.0 config.
version: 2
jobs:
  build:
    working_directory: ~/LuisGC/blog
    parallelism: 1
    shell: /bin/bash --login
    # CircleCI 2.0 does not support environment variables that refer to each other the same way as 1.0 did.
    # If any of these refer to each other, rewrite them so that they don't or see https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables .
    environment:
      CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
      CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
      BASE_URL: https://luiyo.net
      HUGO_OUTPUT_FOLDER: docs
    # In CircleCI 1.0 we used a pre-configured image with a large number of languages and other packages.
    # In CircleCI 2.0 you can now specify your own image, or use one of our pre-configured images.
    # The following configuration line tells CircleCI to use the specified docker image as the runtime environment for you job.
    # We have selected a pre-built image that mirrors the build environment we use on
    # the 1.0 platform, but we recommend you choose an image more tailored to the needs
    # of each job. For more information on choosing an image (or alternatively using a
    # VM instead of a container) see https://circleci.com/docs/2.0/executor-types/
    # To see the list of pre-built images that CircleCI provides for most common languages see
    # https://circleci.com/docs/2.0/circleci-images/
    docker:
    # https://hub.docker.com/r/cibuilds/hugo/tags
    - image: cibuilds/hugo:0.157.0

    steps:
    # Machine Setup
    #   If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
    # The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
    - checkout

    # Checking out the submodules as well
    - run:
        name: "Pull Submodules"
        command: |
          git submodule init
          git submodule update --remote
    # Prepare for artifact and test results  collection equivalent to how it was done on 1.0.
    # In many cases you can simplify this from what is generated here.
    # 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
#    - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
    # This is based on your 1.0 configuration file or project settings
    - run:
        command: git config --global user.name "CircleCI"
    - run:
        command: git config --global user.email "circleci@circleci.com"
    # Dependencies
    #   This would typically go in either a build or a build-and-test job when using workflows
    # Restore the dependency cache
    - restore_cache:
        keys:
        # This branch if available
        - v1-dep-{{ .Branch }}-
        # Default branch if not
        - v1-dep-master-
        # Any branch if there are none on the default branch - this should be unnecessary if you have your default branch configured correctly
        - v1-dep-
    - run:
        name: "Checking Hugo version"
        command: hugo version

    - run:
        name: "Build Website With Hugo"
        command: hugo -v -d "${HUGO_OUTPUT_FOLDER}" --cleanDestinationDir --baseURL="${BASE_URL}"

    # Save dependency cache
    - save_cache:
        key: v1-dep-{{ .Branch }}-{{ epoch }}
        paths:
        # This is a broad list of cache paths to include many possible development environments
        # You can probably delete some of these entries
         - vendor/bundle
        # - ~/virtualenvs
        # - ~/.m2
        # - ~/.ivy2
        # - ~/.bundle
        # - ~/.go_workspace
        # - ~/.gradle
        # - ~/.cache/bower
    # Test
    #   This would typically be a build job when using workflows, possibly combined with build
    # This is based on your 1.0 configuration file or project settings
    #  - run: hugo check

    # Deployment
    # Your existing circle.yml file contains deployment steps.
    # The config translation tool does not support translating deployment steps
    # since deployment in CircleCI 2.0 are better handled through workflows.
    # See the documentation for more information https://circleci.com/docs/2.0/workflows/

    # Teardown
    #   If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
    # Save test results
    #    - store_test_results:
    #        path: /tmp/circleci-test-results
    # Save artifacts
    #    - store_artifacts:
    #        path: /tmp/circleci-artifacts
    #    - store_artifacts:
    #        path: /tmp/circleci-test-results

    - run:
        name: Deploy static pages to Github Pages
        command: |
            if [ "${CIRCLE_BRANCH}" = "master" ]; then
              echo -e "Starting to deploy to Github Pages\n"

              # Basic environment validation
              if [ -z "${GH_TOKEN}" ] || [ -z "${TARGET_REPO}" ]; then
                echo "ERROR: GH_TOKEN and TARGET_REPO must be set in CircleCI project settings."
                echo "GH_TOKEN set? ->" $( [ -n "${GH_TOKEN}" ] && echo yes || echo no )
                echo "TARGET_REPO set? ->" $( [ -n "${TARGET_REPO}" ] && echo yes || echo no )
                exit 1
              fi

              cd ~/LuisGC/blog || exit 1

              # Clone the target branch into a separate folder for deployment
              echo "Cloning target repo: ${TARGET_REPO} (branch: ${CIRCLE_BRANCH})"
              git clone --quiet --branch=${CIRCLE_BRANCH} https://${GH_TOKEN}@github.com/${TARGET_REPO} built_website > /dev/null || {
                echo "ERROR: git clone failed. Check GH_TOKEN and TARGET_REPO values and permissions."; exit 1; }

              # go into directory and copy data we're interested in to that directory
              cd built_website || exit 1

              # Ensure rsync is available; install only if missing (avoids unnecessary apt runs)
              if ! command -v rsync >/dev/null 2>&1; then
                echo "rsync not found, installing..."
                apt-get update && apt-get -y install rsync || { echo "Failed to install rsync"; exit 1; }
              fi

              echo "rsync built code with checked out code..."
              rsync -r --exclude=.git --exclude=CNAME --exclude=LICENSE --exclude=README.md ../${HUGO_OUTPUT_FOLDER}/ .

              echo "add files to git..."
              git add -f .
              echo "commit files to git repository..."
              if git commit -m "CircleCI build ${CIRCLE_BUILD_NUM} on $(date) pushed to Github Pages" ; then
                echo "git push files with force..."
                git push -fq origin ${CIRCLE_BRANCH} > /dev/null
                echo -e "Deploy completed\n"
              else
                echo "Content not changed, nothing to deploy"
              fi

            else
              echo "Not master branch, dry run only"
            fi

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API