github.com/linchen2chris/hugo@v0.0.0-20230307053224-cec209389705/.circleci/config.yml (about)

     1  parameters:
     2  
     3  # v2: 11m.
     4  defaults: &defaults
     5    resource_class: large
     6    docker:
     7        - image: bepsays/ci-hugoreleaser:1.22000.20100
     8  environment: &buildenv
     9        GOMODCACHE: /root/project/gomodcache
    10  version: 2
    11  jobs:
    12    prepare_release:
    13      <<: *defaults 
    14      environment: &buildenv
    15          GOMODCACHE: /root/project/gomodcache
    16      steps:
    17        - &remote-docker
    18          setup_remote_docker: 
    19            version: 20.10.14
    20        - checkout: 
    21            path: hugo
    22        - &git-config
    23          run:
    24             command: |
    25              git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
    26              git config --global user.name "hugoreleaser"
    27        - run:
    28            command: |
    29              cd hugo
    30              go mod download
    31              go run -tags release main.go release --step 1
    32        - save_cache:
    33            key: git-sha-{{ .Revision }}
    34            paths:
    35              - hugo
    36              - gomodcache
    37    build_container1:
    38      <<: [*defaults]
    39      environment:
    40        <<: [*buildenv]
    41      steps:
    42        - &restore-cache
    43          restore_cache:
    44            key: git-sha-{{ .Revision }}
    45        - run:
    46            no_output_timeout: 20m
    47            command: |
    48              mkdir -p /tmp/files/dist1
    49              cd hugo
    50              hugoreleaser build -paths "builds/container1/**" -workers 3 -dist /tmp/files/dist1 -chunks $CIRCLE_NODE_TOTAL -chunk-index $CIRCLE_NODE_INDEX
    51        - &persist-workspace
    52          persist_to_workspace:
    53            root: /tmp/files
    54            paths:
    55              - dist1
    56              - dist2
    57      parallelism: 7
    58    build_container2:
    59      <<: [*defaults]
    60      environment:
    61          <<: [*buildenv]
    62      docker:
    63      - image: bepsays/ci-hugoreleaser-linux-arm64:1.22000.20100
    64      steps:
    65        - *restore-cache
    66        - &attach-workspace
    67          attach_workspace:
    68            at: /tmp/workspace
    69        - run:
    70            command: |
    71                    mkdir -p /tmp/files/dist2
    72                    cd hugo
    73                    hugoreleaser build -paths "builds/container2/**" -workers 1 -dist /tmp/files/dist2
    74        - *persist-workspace
    75    archive_and_release:
    76      <<: [*defaults]
    77      environment:
    78          <<: [*buildenv]
    79      steps:
    80        - *restore-cache
    81        - *attach-workspace
    82        - *git-config
    83        - run:
    84            command: |
    85              cp -a /tmp/workspace/dist1/. ./hugo/dist
    86              cp -a /tmp/workspace/dist2/. ./hugo/dist
    87        - run:
    88            command: |
    89              cd hugo
    90              hugoreleaser archive
    91              hugoreleaser release
    92              go run -tags release main.go release --step 2
    93  workflows:
    94    version: 2
    95    release:
    96        jobs:  
    97          - prepare_release:
    98              filters:
    99                branches:
   100                  only: /release-.*/
   101          - build_container1:
   102              requires:
   103              - prepare_release
   104          - build_container2:
   105              requires:
   106              - prepare_release
   107          - archive_and_release:
   108              context: org-global
   109              requires:
   110              - build_container1
   111              - build_container2
   112       
   113    
   114