summaryrefslogtreecommitdiffstats
path: root/.circleci
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-08-05 16:35:24 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-08-28 18:23:01 +0200
commit45e1084ff2d47efe0ae83a984a8723abd135ca48 (patch)
treec226bd12ff7af7a6414dc52fae4a66106792ad8e /.circleci
parentc98348416cfa90026ef8fba93d6c0babe0f41d52 (diff)
Add linux/arm64 extended to release setup
Fixes #8257
Diffstat (limited to '.circleci')
-rw-r--r--.circleci/config.yml127
1 files changed, 95 insertions, 32 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 07008673b..9f16e900c 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,51 +1,114 @@
+parameters:
+
+# v2: 11m.
defaults: &defaults
+ resource_class: large
docker:
- - image: bepsays/ci-goreleaser:1.21900.20000
- environment:
- CGO_ENABLED: "0"
-
+ - image: bepsays/ci-hugoreleaser:1.21900.20000
+environment: &buildenv
+ GOMODCACHE: /root/project/gomodcache
version: 2
jobs:
- build:
- <<: *defaults
+ prepare_release:
+ <<: *defaults
+ environment: &buildenv
+ GOMODCACHE: /root/project/gomodcache
steps:
- - checkout:
+ - &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: |
- git clone git@github.com:gohugoio/hugoDocs.git
- cd hugo
- go mod download
- sleep 5
- go mod verify
- - persist_to_workspace:
- root: .
- paths: .
- release:
- <<: *defaults
+ 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:
- - attach_workspace:
- at: /root/project
+ - &restore-cache
+ restore_cache:
+ key: git-sha-{{ .Revision }}
- run:
- command: |
- cd hugo
- git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
- git config --global user.name "hugoreleaser"
- go run -tags release main.go release -r ${CIRCLE_BRANCH}
-
+ 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.21900.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:
+ 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:
version: 2
release:
jobs:
- - build:
+ - prepare_release:
filters:
branches:
only: /release-.*/
- - hold:
- type: approval
+ - build_container1:
+ requires:
+ - prepare_release
+ - build_container2:
requires:
- - build
- - release:
+ - prepare_release
+ - archive_and_release:
context: org-global
requires:
- - hold
+ - build_container1
+ - build_container2
+
+
+