mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
5f667f8796
commit
445283a593
3 changed files with 143 additions and 112 deletions
120
.circleci/build.yml
Normal file
120
.circleci/build.yml
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
version: 2.1
|
||||||
|
|
||||||
|
# Passed from config.yml
|
||||||
|
parameters:
|
||||||
|
skip:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
|
defaults: &defaults
|
||||||
|
resource_class: large
|
||||||
|
docker:
|
||||||
|
- image: bepsays/ci-hugoreleaser:1.22300.20000
|
||||||
|
environment: &buildenv
|
||||||
|
GOMODCACHE: /root/project/gomodcache
|
||||||
|
jobs:
|
||||||
|
prepare_release:
|
||||||
|
<<: *defaults
|
||||||
|
environment: &buildenv
|
||||||
|
GOMODCACHE: /root/project/gomodcache
|
||||||
|
steps:
|
||||||
|
- &remote-docker
|
||||||
|
setup_remote_docker:
|
||||||
|
version: 20.10.14
|
||||||
|
- checkout:
|
||||||
|
path: hugo
|
||||||
|
- &git-config
|
||||||
|
run:
|
||||||
|
command: |
|
||||||
|
git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
|
||||||
|
git config --global user.name "hugoreleaser"
|
||||||
|
- run:
|
||||||
|
command: |
|
||||||
|
cd hugo
|
||||||
|
go mod download
|
||||||
|
go run -tags release main.go release --step 1
|
||||||
|
- save_cache:
|
||||||
|
key: git-sha-{{ .Revision }}
|
||||||
|
paths:
|
||||||
|
- hugo
|
||||||
|
- gomodcache
|
||||||
|
build_container1:
|
||||||
|
<<: [*defaults]
|
||||||
|
environment:
|
||||||
|
<<: [*buildenv]
|
||||||
|
steps:
|
||||||
|
- &restore-cache
|
||||||
|
restore_cache:
|
||||||
|
key: git-sha-{{ .Revision }}
|
||||||
|
- run:
|
||||||
|
no_output_timeout: 20m
|
||||||
|
command: |
|
||||||
|
mkdir -p /tmp/files/dist1
|
||||||
|
cd hugo
|
||||||
|
hugoreleaser build -paths "builds/container1/**" -workers 3 -dist /tmp/files/dist1 -chunks $CIRCLE_NODE_TOTAL -chunk-index $CIRCLE_NODE_INDEX
|
||||||
|
- &persist-workspace
|
||||||
|
persist_to_workspace:
|
||||||
|
root: /tmp/files
|
||||||
|
paths:
|
||||||
|
- dist1
|
||||||
|
- dist2
|
||||||
|
parallelism: 7
|
||||||
|
build_container2:
|
||||||
|
<<: [*defaults]
|
||||||
|
environment:
|
||||||
|
<<: [*buildenv]
|
||||||
|
docker:
|
||||||
|
- image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20000
|
||||||
|
steps:
|
||||||
|
- *restore-cache
|
||||||
|
- &attach-workspace
|
||||||
|
attach_workspace:
|
||||||
|
at: /tmp/workspace
|
||||||
|
- run:
|
||||||
|
command: |
|
||||||
|
mkdir -p /tmp/files/dist2
|
||||||
|
cd hugo
|
||||||
|
hugoreleaser build -paths "builds/container2/**" -workers 1 -dist /tmp/files/dist2
|
||||||
|
- *persist-workspace
|
||||||
|
archive_and_release:
|
||||||
|
<<: [*defaults]
|
||||||
|
environment:
|
||||||
|
<<: [*buildenv]
|
||||||
|
steps:
|
||||||
|
- *restore-cache
|
||||||
|
- *attach-workspace
|
||||||
|
- *git-config
|
||||||
|
- run:
|
||||||
|
name: Add github.com to known hosts
|
||||||
|
command: ssh-keyscan github.com >> ~/.ssh/known_hosts
|
||||||
|
- run:
|
||||||
|
command: |
|
||||||
|
cp -a /tmp/workspace/dist1/. ./hugo/dist
|
||||||
|
cp -a /tmp/workspace/dist2/. ./hugo/dist
|
||||||
|
- run:
|
||||||
|
command: |
|
||||||
|
cd hugo
|
||||||
|
hugoreleaser archive
|
||||||
|
hugoreleaser release
|
||||||
|
go run -tags release main.go release --step 2
|
||||||
|
workflows:
|
||||||
|
release:
|
||||||
|
when:
|
||||||
|
and:
|
||||||
|
- equal: [false, << pipeline.parameters.skip >>]
|
||||||
|
jobs:
|
||||||
|
- prepare_release:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: /release-.*/
|
||||||
|
- build_container1:
|
||||||
|
requires:
|
||||||
|
- prepare_release
|
||||||
|
- build_container2:
|
||||||
|
requires:
|
||||||
|
- prepare_release
|
||||||
|
- archive_and_release:
|
||||||
|
context: org-global
|
||||||
|
requires:
|
||||||
|
- build_container1
|
||||||
|
- build_container2
|
|
@ -1,117 +1,27 @@
|
||||||
parameters:
|
version: 2.1
|
||||||
|
setup: true
|
||||||
# v2: 11m.
|
orbs:
|
||||||
defaults: &defaults
|
continuation: circleci/continuation@1
|
||||||
resource_class: large
|
|
||||||
docker:
|
|
||||||
- image: bepsays/ci-hugoreleaser:1.22300.20000
|
|
||||||
environment: &buildenv
|
|
||||||
GOMODCACHE: /root/project/gomodcache
|
|
||||||
version: 2
|
|
||||||
jobs:
|
jobs:
|
||||||
prepare_release:
|
setup:
|
||||||
<<: *defaults
|
|
||||||
environment: &buildenv
|
|
||||||
GOMODCACHE: /root/project/gomodcache
|
|
||||||
steps:
|
|
||||||
- &remote-docker
|
|
||||||
setup_remote_docker:
|
|
||||||
version: 20.10.14
|
|
||||||
- checkout:
|
|
||||||
path: hugo
|
|
||||||
- &git-config
|
|
||||||
run:
|
|
||||||
command: |
|
|
||||||
git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
|
|
||||||
git config --global user.name "hugoreleaser"
|
|
||||||
- run:
|
|
||||||
command: |
|
|
||||||
cd hugo
|
|
||||||
go mod download
|
|
||||||
go run -tags release main.go release --step 1
|
|
||||||
- save_cache:
|
|
||||||
key: git-sha-{{ .Revision }}
|
|
||||||
paths:
|
|
||||||
- hugo
|
|
||||||
- gomodcache
|
|
||||||
build_container1:
|
|
||||||
<<: [*defaults]
|
|
||||||
environment:
|
|
||||||
<<: [*buildenv]
|
|
||||||
steps:
|
|
||||||
- &restore-cache
|
|
||||||
restore_cache:
|
|
||||||
key: git-sha-{{ .Revision }}
|
|
||||||
- run:
|
|
||||||
no_output_timeout: 20m
|
|
||||||
command: |
|
|
||||||
mkdir -p /tmp/files/dist1
|
|
||||||
cd hugo
|
|
||||||
hugoreleaser build -paths "builds/container1/**" -workers 3 -dist /tmp/files/dist1 -chunks $CIRCLE_NODE_TOTAL -chunk-index $CIRCLE_NODE_INDEX
|
|
||||||
- &persist-workspace
|
|
||||||
persist_to_workspace:
|
|
||||||
root: /tmp/files
|
|
||||||
paths:
|
|
||||||
- dist1
|
|
||||||
- dist2
|
|
||||||
parallelism: 7
|
|
||||||
build_container2:
|
|
||||||
<<: [*defaults]
|
|
||||||
environment:
|
|
||||||
<<: [*buildenv]
|
|
||||||
docker:
|
docker:
|
||||||
- image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20000
|
- image: cimg/go:1.21
|
||||||
steps:
|
steps:
|
||||||
- *restore-cache
|
- checkout
|
||||||
- &attach-workspace
|
|
||||||
attach_workspace:
|
|
||||||
at: /tmp/workspace
|
|
||||||
- run:
|
- run:
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/files/dist2
|
export SKIP=$(git log -n 1 $CIRCLE_SHA1 --pretty=%B | grep -q "NOCIRCLECI" && echo "true" || echo "false")
|
||||||
cd hugo
|
echo "{\"skip\": $SKIP}" >> set-up-params.json
|
||||||
hugoreleaser build -paths "builds/container2/**" -workers 1 -dist /tmp/files/dist2
|
- continuation/continue:
|
||||||
- *persist-workspace
|
parameters: set-up-params.json
|
||||||
archive_and_release:
|
configuration_path: .circleci/build.yml
|
||||||
<<: [*defaults]
|
|
||||||
environment:
|
|
||||||
<<: [*buildenv]
|
|
||||||
steps:
|
|
||||||
- *restore-cache
|
|
||||||
- *attach-workspace
|
|
||||||
- *git-config
|
|
||||||
- run:
|
|
||||||
name: Add github.com to known hosts
|
|
||||||
command: ssh-keyscan github.com >> ~/.ssh/known_hosts
|
|
||||||
- run:
|
|
||||||
command: |
|
|
||||||
cp -a /tmp/workspace/dist1/. ./hugo/dist
|
|
||||||
cp -a /tmp/workspace/dist2/. ./hugo/dist
|
|
||||||
- run:
|
|
||||||
command: |
|
|
||||||
cd hugo
|
|
||||||
hugoreleaser archive
|
|
||||||
hugoreleaser release
|
|
||||||
go run -tags release main.go release --step 2
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
configure:
|
||||||
release:
|
when:
|
||||||
jobs:
|
and:
|
||||||
- prepare_release:
|
- matches:
|
||||||
filters:
|
pattern: "^release.+"
|
||||||
branches:
|
value: << pipeline.git.branch >>
|
||||||
only: /release-.*/
|
jobs:
|
||||||
- build_container1:
|
- setup
|
||||||
requires:
|
|
||||||
- prepare_release
|
|
||||||
- build_container2:
|
|
||||||
requires:
|
|
||||||
- prepare_release
|
|
||||||
- archive_and_release:
|
|
||||||
context: org-global
|
|
||||||
requires:
|
|
||||||
- build_container1
|
|
||||||
- build_container2
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,8 @@ func (r *ReleaseHandler) Run() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := r.git("commit", "-a", "-m", fmt.Sprintf("%s Bump versions for release of %s\n\n[ci skip]", commitPrefix, newVersion)); err != nil {
|
// The reason we use NOCIRCLECI, see https://github.com/gohugoio/hugo/issues/12753
|
||||||
|
if _, err := r.git("commit", "-a", "-m", fmt.Sprintf("%s Bump versions for release of %s\n\nNOCIRCLECI", commitPrefix, newVersion)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue