mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2025-09-01 00:29:13 +00:00
ci: selective signing and automatic release builds (#3430)
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
This commit is contained in:
@@ -22,10 +22,17 @@ jobs:
|
|||||||
# work around CircleCI-Public/path-filtering-orb#20
|
# work around CircleCI-Public/path-filtering-orb#20
|
||||||
noop:
|
noop:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/base:current
|
- image: cimg/base:stable
|
||||||
steps:
|
steps:
|
||||||
- run: "true"
|
- run: "true"
|
||||||
|
validate-commit-on-main:
|
||||||
|
docker:
|
||||||
|
- image: cimg/base:stable
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Verify that commit is on the main branch
|
||||||
|
command: git merge-base --is-ancestor HEAD main
|
||||||
build-offline-chat-installer-macos:
|
build-offline-chat-installer-macos:
|
||||||
macos:
|
macos:
|
||||||
xcode: 15.4.0
|
xcode: 15.4.0
|
||||||
@@ -1220,7 +1227,7 @@ jobs:
|
|||||||
cd gpt4all-bindings/typescript
|
cd gpt4all-bindings/typescript
|
||||||
npm run docs:build
|
npm run docs:build
|
||||||
|
|
||||||
build-py-docs:
|
deploy-docs:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/python:3.8
|
- image: circleci/python:3.8
|
||||||
steps:
|
steps:
|
||||||
@@ -1424,7 +1431,7 @@ jobs:
|
|||||||
paths:
|
paths:
|
||||||
- "*.whl"
|
- "*.whl"
|
||||||
|
|
||||||
publish-wheels:
|
deploy-wheels:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/python:3.8
|
- image: circleci/python:3.8
|
||||||
steps:
|
steps:
|
||||||
@@ -1721,7 +1728,7 @@ jobs:
|
|||||||
- prebuilds/win32-x64/*.node
|
- prebuilds/win32-x64/*.node
|
||||||
- runtimes/win32-x64/*-*.dll
|
- runtimes/win32-x64/*-*.dll
|
||||||
|
|
||||||
prepare-npm-pkg:
|
deploy-npm-pkg:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/base:stable
|
- image: cimg/base:stable
|
||||||
steps:
|
steps:
|
||||||
@@ -1777,11 +1784,19 @@ jobs:
|
|||||||
npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN
|
npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN
|
||||||
npm publish
|
npm publish
|
||||||
|
|
||||||
main_only: &main_only
|
# only run a job on the main branch
|
||||||
|
job_only_main: &job_only_main
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: main
|
only: main
|
||||||
|
|
||||||
|
# allow a job to run on tags as well as commits
|
||||||
|
job_allow_tags: &job_allow_tags
|
||||||
|
filters:
|
||||||
|
tags:
|
||||||
|
only:
|
||||||
|
- /.*/
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
noop:
|
noop:
|
||||||
@@ -1794,21 +1809,112 @@ workflows:
|
|||||||
- << pipeline.parameters.run-chat-workflow >>
|
- << pipeline.parameters.run-chat-workflow >>
|
||||||
jobs:
|
jobs:
|
||||||
- noop
|
- noop
|
||||||
|
build-chat-installers-release:
|
||||||
|
# only run on main branch tags that start with 'v' and a digit
|
||||||
|
when:
|
||||||
|
and:
|
||||||
|
- equal: [ << pipeline.git.branch >>, main ]
|
||||||
|
- matches: { pattern: '^v\d.*', value: << pipeline.git.tag >> }
|
||||||
|
jobs:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- build-offline-chat-installer-macos:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- sign-offline-chat-installer-macos:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- build-offline-chat-installer-macos
|
||||||
|
- notarize-offline-chat-installer-macos:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- sign-offline-chat-installer-macos
|
||||||
|
- build-offline-chat-installer-windows:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- sign-offline-chat-installer-windows:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- build-offline-chat-installer-windows
|
||||||
|
- build-offline-chat-installer-windows-arm:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- sign-offline-chat-installer-windows-arm:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- build-offline-chat-installer-windows-arm
|
||||||
|
- build-offline-chat-installer-linux:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- build-online-chat-installer-macos:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- sign-online-chat-installer-macos:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- build-online-chat-installer-macos
|
||||||
|
- notarize-online-chat-installer-macos:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- sign-online-chat-installer-macos
|
||||||
|
- build-online-chat-installer-windows:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- sign-online-chat-installer-windows:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- build-online-chat-installer-windows
|
||||||
|
- build-online-chat-installer-windows-arm:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
|
- sign-online-chat-installer-windows-arm:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- build-online-chat-installer-windows-arm
|
||||||
|
- build-online-chat-installer-linux:
|
||||||
|
<<: *job_allow_tags
|
||||||
|
context: gpt4all
|
||||||
|
requires:
|
||||||
|
- validate-commit-on-main
|
||||||
build-chat-offline-installers:
|
build-chat-offline-installers:
|
||||||
when:
|
when:
|
||||||
or:
|
or:
|
||||||
- << pipeline.parameters.run-all-workflows >>
|
- << pipeline.parameters.run-all-workflows >>
|
||||||
- << pipeline.parameters.run-chat-workflow >>
|
- << pipeline.parameters.run-chat-workflow >>
|
||||||
jobs:
|
jobs:
|
||||||
- hold:
|
- build-hold:
|
||||||
|
type: approval
|
||||||
|
- sign-hold:
|
||||||
type: approval
|
type: approval
|
||||||
- build-offline-chat-installer-macos:
|
- build-offline-chat-installer-macos:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
- sign-offline-chat-installer-macos:
|
- sign-offline-chat-installer-macos:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
|
- sign-hold
|
||||||
- build-offline-chat-installer-macos
|
- build-offline-chat-installer-macos
|
||||||
- notarize-offline-chat-installer-macos:
|
- notarize-offline-chat-installer-macos:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
@@ -1817,15 +1923,16 @@ workflows:
|
|||||||
- build-offline-chat-installer-windows:
|
- build-offline-chat-installer-windows:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
- sign-offline-chat-installer-windows:
|
- sign-offline-chat-installer-windows:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
|
- sign-hold
|
||||||
- build-offline-chat-installer-windows
|
- build-offline-chat-installer-windows
|
||||||
- build-offline-chat-installer-windows-arm:
|
- build-offline-chat-installer-windows-arm:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
- sign-offline-chat-installer-windows-arm:
|
- sign-offline-chat-installer-windows-arm:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
@@ -1833,56 +1940,51 @@ workflows:
|
|||||||
- build-offline-chat-installer-linux:
|
- build-offline-chat-installer-linux:
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
build-chat-online-installers:
|
build-chat-online-installers:
|
||||||
when:
|
when:
|
||||||
or:
|
or:
|
||||||
- << pipeline.parameters.run-all-workflows >>
|
- << pipeline.parameters.run-all-workflows >>
|
||||||
- << pipeline.parameters.run-chat-workflow >>
|
- << pipeline.parameters.run-chat-workflow >>
|
||||||
jobs:
|
jobs:
|
||||||
- hold:
|
- build-hold:
|
||||||
<<: *main_only
|
type: approval
|
||||||
|
- sign-hold:
|
||||||
type: approval
|
type: approval
|
||||||
- build-online-chat-installer-macos:
|
- build-online-chat-installer-macos:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
- sign-online-chat-installer-macos:
|
- sign-online-chat-installer-macos:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
|
- sign-hold
|
||||||
- build-online-chat-installer-macos
|
- build-online-chat-installer-macos
|
||||||
- notarize-online-chat-installer-macos:
|
- notarize-online-chat-installer-macos:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- sign-online-chat-installer-macos
|
- sign-online-chat-installer-macos
|
||||||
- build-online-chat-installer-windows:
|
- build-online-chat-installer-windows:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
- sign-online-chat-installer-windows:
|
- sign-online-chat-installer-windows:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
|
- sign-hold
|
||||||
- build-online-chat-installer-windows
|
- build-online-chat-installer-windows
|
||||||
- build-online-chat-installer-windows-arm:
|
- build-online-chat-installer-windows-arm:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
- sign-online-chat-installer-windows-arm:
|
- sign-online-chat-installer-windows-arm:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- build-online-chat-installer-windows-arm
|
- build-online-chat-installer-windows-arm
|
||||||
- build-online-chat-installer-linux:
|
- build-online-chat-installer-linux:
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- build-hold
|
||||||
build-and-test-gpt4all-chat:
|
build-and-test-gpt4all-chat:
|
||||||
when:
|
when:
|
||||||
or:
|
or:
|
||||||
@@ -1905,14 +2007,13 @@ workflows:
|
|||||||
- hold
|
- hold
|
||||||
deploy-docs:
|
deploy-docs:
|
||||||
when:
|
when:
|
||||||
or:
|
and:
|
||||||
- << pipeline.parameters.run-all-workflows >>
|
- equal: [ << pipeline.git.branch >>, main ]
|
||||||
- << pipeline.parameters.run-python-workflow >>
|
- or:
|
||||||
|
- << pipeline.parameters.run-all-workflows >>
|
||||||
|
- << pipeline.parameters.run-python-workflow >>
|
||||||
jobs:
|
jobs:
|
||||||
- build-ts-docs:
|
- deploy-docs:
|
||||||
<<: *main_only
|
|
||||||
- build-py-docs:
|
|
||||||
<<: *main_only
|
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
build-python:
|
build-python:
|
||||||
when:
|
when:
|
||||||
@@ -1921,7 +2022,7 @@ workflows:
|
|||||||
- << pipeline.parameters.run-python-workflow >>
|
- << pipeline.parameters.run-python-workflow >>
|
||||||
jobs:
|
jobs:
|
||||||
- pypi-hold:
|
- pypi-hold:
|
||||||
<<: *main_only
|
<<: *job_only_main
|
||||||
type: approval
|
type: approval
|
||||||
- hold:
|
- hold:
|
||||||
type: approval
|
type: approval
|
||||||
@@ -1934,8 +2035,8 @@ workflows:
|
|||||||
- build-py-windows:
|
- build-py-windows:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- hold
|
||||||
- publish-wheels:
|
- deploy-wheels:
|
||||||
<<: *main_only
|
<<: *job_only_main
|
||||||
context: gpt4all
|
context: gpt4all
|
||||||
requires:
|
requires:
|
||||||
- pypi-hold
|
- pypi-hold
|
||||||
@@ -1946,34 +2047,26 @@ workflows:
|
|||||||
when:
|
when:
|
||||||
or:
|
or:
|
||||||
- << pipeline.parameters.run-all-workflows >>
|
- << pipeline.parameters.run-all-workflows >>
|
||||||
- << pipeline.parameters.run-python-workflow >>
|
|
||||||
- << pipeline.parameters.run-ts-workflow >>
|
- << pipeline.parameters.run-ts-workflow >>
|
||||||
jobs:
|
jobs:
|
||||||
- hold:
|
- backend-hold:
|
||||||
type: approval
|
type: approval
|
||||||
- nodejs-hold:
|
- nodejs-hold:
|
||||||
type: approval
|
type: approval
|
||||||
- npm-hold:
|
- npm-hold:
|
||||||
<<: *main_only
|
<<: *job_only_main
|
||||||
|
type: approval
|
||||||
|
- docs-hold:
|
||||||
type: approval
|
type: approval
|
||||||
- build-bindings-backend-linux:
|
- build-bindings-backend-linux:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- backend-hold
|
||||||
- build-bindings-backend-macos:
|
- build-bindings-backend-macos:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- backend-hold
|
||||||
- build-bindings-backend-windows:
|
- build-bindings-backend-windows:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- backend-hold
|
||||||
|
|
||||||
# NodeJs Jobs
|
|
||||||
- prepare-npm-pkg:
|
|
||||||
<<: *main_only
|
|
||||||
requires:
|
|
||||||
- npm-hold
|
|
||||||
- build-nodejs-linux
|
|
||||||
- build-nodejs-windows
|
|
||||||
- build-nodejs-macos
|
|
||||||
- build-nodejs-linux:
|
- build-nodejs-linux:
|
||||||
requires:
|
requires:
|
||||||
- nodejs-hold
|
- nodejs-hold
|
||||||
@@ -1986,3 +2079,13 @@ workflows:
|
|||||||
requires:
|
requires:
|
||||||
- nodejs-hold
|
- nodejs-hold
|
||||||
- build-bindings-backend-macos
|
- build-bindings-backend-macos
|
||||||
|
- build-ts-docs:
|
||||||
|
requires:
|
||||||
|
- docs-hold
|
||||||
|
- deploy-npm-pkg:
|
||||||
|
<<: *job_only_main
|
||||||
|
requires:
|
||||||
|
- npm-hold
|
||||||
|
- build-nodejs-linux
|
||||||
|
- build-nodejs-windows
|
||||||
|
- build-nodejs-macos
|
||||||
|
Reference in New Issue
Block a user