2017-10-23 16:38:30 +00:00
# Determine this makefile's path.
# Be sure to place this BEFORE `include` directives, if any.
THIS_FILE := $( lastword $( MAKEFILE_LIST) )
2020-01-09 17:35:32 +00:00
TEST ?= $$ ( $( GO_CMD) list ./... | grep -v /vendor/ | grep -v /integ)
2019-07-22 17:11:00 +00:00
TEST_TIMEOUT ?= 45m
EXTENDED_TEST_TIMEOUT = 60m
INTEG_TEST_TIMEOUT = 120m
2015-03-04 07:14:18 +00:00
VETARGS ?= -asmdecl -atomic -bool -buildtags -copylocks -methods -nilfunc -printf -rangeloops -shift -structtags -unsafeptr
2020-04-22 19:05:49 +00:00
EXTERNAL_TOOLS_CI = \
2023-02-07 09:41:04 +00:00
golang.org/x/tools/cmd/goimports \
github.com/golangci/revgrep/cmd/revgrep
2020-04-29 20:35:13 +00:00
EXTERNAL_TOOLS = \
2020-04-25 00:52:23 +00:00
github.com/client9/misspell/cmd/misspell
2019-12-08 02:01:11 +00:00
GOFMT_FILES ?= $$ ( find . -name '*.go' | grep -v pb.go | grep -v vendor)
Add plugin version to GRPC interface (#17088)
Add plugin version to GRPC interface
Added a version interface in the sdk/logical so that it can be shared between all plugin types, and then wired it up to RunningVersion in the mounts, auth list, and database systems.
I've tested that this works with auth, database, and secrets plugin types, with the following logic to populate RunningVersion:
If a plugin has a PluginVersion() method implemented, then that is used
If not, and the plugin is built into the Vault binary, then the go.mod version is used
Otherwise, the it will be the empty string.
My apologies for the length of this PR.
* Placeholder backend should be external
We use a placeholder backend (previously a framework.Backend) before a
GRPC plugin is lazy-loaded. This makes us later think the plugin is a
builtin plugin.
So we added a `placeholderBackend` type that overrides the
`IsExternal()` method so that later we know that the plugin is external,
and don't give it a default builtin version.
2022-09-15 23:37:59 +00:00
SED ?= $( shell command -v gsed || command -v sed)
2019-12-08 02:01:11 +00:00
2022-11-03 14:04:53 +00:00
GO_VERSION_MIN = $$ ( cat $( CURDIR) /.go-version)
2023-01-24 19:00:27 +00:00
PROTOC_VERSION_MIN = 3.21.12
2020-01-09 17:35:32 +00:00
GO_CMD ?= go
2019-05-22 12:17:55 +00:00
CGO_ENABLED ?= 0
2018-07-16 14:18:09 +00:00
i f n e q ( $( FDB_ENABLED ) , )
CGO_ENABLED = 1
BUILD_TAGS += foundationdb
e n d i f
2017-02-06 01:30:40 +00:00
default : dev
2015-03-04 07:14:18 +00:00
2018-03-20 18:54:10 +00:00
# bin generates the releasable binaries for Vault
2017-10-23 16:38:30 +00:00
bin : prep
2018-07-16 14:18:09 +00:00
@CGO_ENABLED= $( CGO_ENABLED) BUILD_TAGS = '$(BUILD_TAGS) ui' sh -c " ' $( CURDIR) /scripts/build.sh' "
2015-03-04 07:14:18 +00:00
# dev creates binaries for testing Vault locally. These are put
2018-04-09 21:36:05 +00:00
# into ./bin/ as well as $GOPATH/bin
2017-10-23 16:38:30 +00:00
dev : prep
2018-07-16 14:18:09 +00:00
@CGO_ENABLED= $( CGO_ENABLED) BUILD_TAGS = '$(BUILD_TAGS)' VAULT_DEV_BUILD = 1 sh -c " ' $( CURDIR) /scripts/build.sh' "
2019-03-25 17:07:14 +00:00
dev-ui : assetcheck prep
2018-07-16 14:18:09 +00:00
@CGO_ENABLED= $( CGO_ENABLED) BUILD_TAGS = '$(BUILD_TAGS) ui' VAULT_DEV_BUILD = 1 sh -c " ' $( CURDIR) /scripts/build.sh' "
2017-09-04 23:16:11 +00:00
dev-dynamic : prep
2016-05-10 03:17:38 +00:00
@CGO_ENABLED= 1 BUILD_TAGS = '$(BUILD_TAGS)' VAULT_DEV_BUILD = 1 sh -c " ' $( CURDIR) /scripts/build.sh' "
2018-10-31 18:11:45 +00:00
# *-mem variants will enable memory profiling which will write snapshots of heap usage
# to $TMP/vaultprof every 5 minutes. These can be analyzed using `$ go tool pprof <profile_file>`.
# Note that any build can have profiling added via: `$ BUILD_TAGS=memprofiler make ...`
dev-mem : BUILD_TAGS +=memprofiler
dev-mem : dev
dev-ui-mem : BUILD_TAGS +=memprofiler
2019-03-25 17:07:14 +00:00
dev-ui-mem : assetcheck dev -ui
2018-10-31 18:11:45 +00:00
dev-dynamic-mem : BUILD_TAGS +=memprofiler
dev-dynamic-mem : dev -dynamic
2020-07-20 18:11:34 +00:00
# Creates a Docker image by adding the compiled linux/amd64 binary found in ./bin.
2020-10-08 18:30:31 +00:00
# The resulting image is tagged "vault:dev".
2020-07-20 18:11:34 +00:00
docker-dev : prep
2021-06-04 15:51:55 +00:00
docker build --build-arg VERSION = $( GO_VERSION_MIN) --build-arg BUILD_TAGS = " $( BUILD_TAGS) " -f scripts/docker/Dockerfile -t vault:dev .
2020-07-20 18:11:34 +00:00
docker-dev-ui : prep
2021-06-04 15:51:55 +00:00
docker build --build-arg VERSION = $( GO_VERSION_MIN) --build-arg BUILD_TAGS = " $( BUILD_TAGS) " -f scripts/docker/Dockerfile.ui -t vault:dev-ui .
2020-07-20 18:11:34 +00:00
2015-03-04 07:14:18 +00:00
# test runs the unit tests and vets the code
2017-10-23 16:38:30 +00:00
test : prep
2018-07-16 14:18:09 +00:00
@CGO_ENABLED= $( CGO_ENABLED) \
2017-09-05 03:51:29 +00:00
VAULT_ADDR = \
VAULT_TOKEN = \
VAULT_DEV_ROOT_TOKEN_ID = \
VAULT_ACC = \
2020-01-09 17:35:32 +00:00
$( GO_CMD) test -tags= '$(BUILD_TAGS)' $( TEST) $( TESTARGS) -timeout= $( TEST_TIMEOUT) -parallel= 20
2015-03-04 07:14:18 +00:00
2017-10-23 16:38:30 +00:00
testcompile : prep
2017-02-16 20:15:02 +00:00
@for pkg in $( TEST) ; do \
2020-01-09 17:35:32 +00:00
$( GO_CMD) test -v -c -tags= '$(BUILD_TAGS)' $$ pkg -parallel= 4 ; \
2017-02-16 20:15:02 +00:00
done
2015-03-20 16:59:48 +00:00
# testacc runs acceptance tests
2017-10-23 16:38:30 +00:00
testacc : prep
2015-03-20 16:59:48 +00:00
@if [ " $( TEST) " = "./..." ] ; then \
echo "ERROR: Set TEST to a specific package" ; \
exit 1; \
fi
2020-01-09 17:35:32 +00:00
VAULT_ACC = 1 $( GO_CMD) test -tags= '$(BUILD_TAGS)' $( TEST) -v $( TESTARGS) -timeout= $( EXTENDED_TEST_TIMEOUT)
2015-03-20 16:59:48 +00:00
2015-03-04 07:14:18 +00:00
# testrace runs the race checker
2017-10-23 16:38:30 +00:00
testrace : prep
2017-09-05 03:51:29 +00:00
@CGO_ENABLED= 1 \
VAULT_ADDR = \
VAULT_TOKEN = \
VAULT_DEV_ROOT_TOKEN_ID = \
VAULT_ACC = \
2020-01-09 17:35:32 +00:00
$( GO_CMD) test -tags= '$(BUILD_TAGS)' -race $( TEST) $( TESTARGS) -timeout= $( EXTENDED_TEST_TIMEOUT) -parallel= 20
2015-03-04 07:14:18 +00:00
cover :
2015-04-29 02:02:46 +00:00
./scripts/coverage.sh --html
2015-03-04 07:14:18 +00:00
# vet runs the Go source code static analysis tool `vet` to find
# any common errors.
vet :
2020-01-09 17:35:32 +00:00
@$( GO_CMD) list -f '{{.Dir}}' ./... | grep -v /vendor/ \
2015-04-28 20:18:55 +00:00
| grep -v '.*github.com/hashicorp/vault$$' \
2020-01-09 17:35:32 +00:00
| xargs $( GO_CMD) vet ; if [ $$ ? -eq 1 ] ; then \
2015-04-28 20:18:55 +00:00
echo "" ; \
echo "Vet found suspicious constructs. Please check the reported constructs" ; \
echo "and fix them if necessary before submitting the code for reviewal." ; \
fi
2015-03-04 07:14:18 +00:00
2023-02-07 09:41:04 +00:00
# tools/godoctests/.bin/godoctests builds the custom analyzer to check for godocs for tests
tools/godoctests/.bin/godoctests :
@cd tools/godoctests && $( GO_CMD) build -o .bin/godoctests .
# vet-godoctests runs godoctests on the test functions. All output gets piped to revgrep
# which will only return an error if a new function is missing a godoc
vet-godoctests : bootstrap tools /godoctests /.bin /godoctests
@$( GO_CMD) vet -vettool= ./tools/godoctests/.bin/godoctests $( TEST) 2>& 1 | revgrep
# ci-vet-godoctests runs godoctests on the test functions. All output gets piped to revgrep
# which will only return an error if a new function that is not on main is missing a godoc
ci-vet-godoctests : ci -bootstrap tools /godoctests /.bin /godoctests
@$( GO_CMD) vet -vettool= ./tools/godoctests/.bin/godoctests $( TEST) 2>& 1 | revgrep origin/main
2019-07-22 17:11:00 +00:00
# lint runs vet plus a number of other checkers, it is more comprehensive, but louder
lint :
2020-01-09 17:35:32 +00:00
@$( GO_CMD) list -f '{{.Dir}}' ./... | grep -v /vendor/ \
2019-07-22 17:11:00 +00:00
| xargs golangci-lint run; if [ $$ ? -eq 1 ] ; then \
echo "" ; \
echo "Lint found suspicious constructs. Please check the reported constructs" ; \
echo "and fix them if necessary before submitting the code for reviewal." ; \
fi
# for ci jobs, runs lint against the changed packages in the commit
ci-lint :
@golangci-lint run --deadline 10m --new-from-rev= HEAD~
2017-09-04 23:16:11 +00:00
# prep runs `go generate` to build the dynamically generated
2015-03-04 07:14:18 +00:00
# source files.
2017-10-23 16:38:30 +00:00
prep : fmtcheck
2017-10-19 20:30:19 +00:00
@sh -c " ' $( CURDIR) /scripts/goversioncheck.sh' ' $( GO_VERSION_MIN) ' "
2020-01-09 17:35:32 +00:00
@$( GO_CMD) generate $( $( GO_CMD) list ./... | grep -v /vendor/)
2017-10-27 17:11:02 +00:00
@if [ -d .git/hooks ] ; then cp .hooks/* .git/hooks/; fi
2015-03-04 07:14:18 +00:00
2020-04-22 19:05:49 +00:00
# bootstrap the build by downloading additional tools needed to build
ci-bootstrap :
@for tool in $( EXTERNAL_TOOLS_CI) ; do \
echo " Installing/Updating $$ tool " ; \
GO111MODULE = off $( GO_CMD) get -u $$ tool; \
done
# bootstrap the build by downloading additional tools that may be used by devs
bootstrap : ci -bootstrap
2020-05-14 17:45:12 +00:00
go generate -tags tools tools/tools.go
2015-05-31 23:32:36 +00:00
2018-05-30 01:09:57 +00:00
# Note: if you have plugins in GOPATH you can update all of them via something like:
# for i in $(ls | grep vault-plugin-); do cd $i; git remote update; git reset --hard origin/master; dep ensure -update; git add .; git commit; git push; cd ..; done
2018-04-10 06:32:41 +00:00
update-plugins :
2021-06-11 11:49:50 +00:00
grep vault-plugin- go.mod | cut -d ' ' -f 1 | while read -r P; do echo " Updating $P ... " ; go get -v " $P " ; done
2018-04-10 06:32:41 +00:00
2019-12-06 18:58:40 +00:00
static-assets-dir :
2021-08-18 15:05:11 +00:00
@mkdir -p ./http/web_ui
2018-04-03 14:46:45 +00:00
2022-03-08 15:58:28 +00:00
install-ui-dependencies :
2018-04-03 14:46:45 +00:00
@echo "--> Installing JavaScript assets"
2019-10-17 19:48:45 +00:00
@cd ui && yarn --ignore-optional
2022-03-08 15:58:28 +00:00
test-ember : install -ui -dependencies
2018-04-03 14:46:45 +00:00
@echo "--> Running ember tests"
2019-12-18 17:12:44 +00:00
@cd ui && yarn run test:oss
2018-04-03 14:46:45 +00:00
2022-03-08 15:58:28 +00:00
test-ember-enos : install -ui -dependencies
@echo "--> Running ember tests with a real backend"
@cd ui && yarn run test:enos
2019-05-24 12:02:51 +00:00
check-vault-in-path :
@VAULT_BIN= $$ ( command -v vault) || { echo "vault command not found" ; exit 1; } ; \
[ -x " $$ VAULT_BIN " ] || { echo " $$ VAULT_BIN not executable " ; exit 1; } ; \
printf " Using Vault at %s:\n\$ $ vault version\n%s\n " " $$ VAULT_BIN " " $$ (vault version) "
2022-03-08 15:58:28 +00:00
ember-dist : install -ui -dependencies
2018-04-03 14:46:45 +00:00
@cd ui && npm rebuild node-sass
@echo "--> Building Ember application"
2018-05-08 15:43:20 +00:00
@cd ui && yarn run build
2018-04-03 14:46:45 +00:00
@rm -rf ui/if-you-need-to-delete-this-open-an-issue-async-disk-cache
2022-03-08 15:58:28 +00:00
ember-dist-dev : install -ui -dependencies
2018-06-25 20:30:11 +00:00
@cd ui && npm rebuild node-sass
@echo "--> Building Ember application"
2021-06-11 15:36:44 +00:00
@cd ui && yarn run build:dev
2018-06-25 20:30:11 +00:00
2022-03-10 12:59:30 +00:00
static-dist : ember -dist
static-dist-dev : ember -dist -dev
2018-04-03 14:46:45 +00:00
2021-09-30 01:25:15 +00:00
proto : bootstrap
2022-09-14 02:46:35 +00:00
@sh -c " ' $( CURDIR) /scripts/protocversioncheck.sh' ' $( PROTOC_VERSION_MIN) ' "
2021-09-30 01:25:15 +00:00
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative vault/*.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative vault/activity/activity_log.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative helper/storagepacker/types.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative helper/forwarding/types.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative sdk/logical/*.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative physical/raft/types.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative helper/identity/mfa/types.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative helper/identity/types.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative sdk/database/dbplugin/*.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative sdk/database/dbplugin/v5/proto/*.proto
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative sdk/plugin/pb/*.proto
2022-02-17 19:43:07 +00:00
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative vault/tokens/token.proto
2022-02-17 14:50:33 +00:00
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative sdk/helper/pluginutil/*.proto
2022-12-09 16:57:35 +00:00
protoc --go_out= . --go_opt= paths = source_relative --go-grpc_out= . --go-grpc_opt= paths = source_relative vault/hcp_link/proto/*/*.proto
2021-09-30 01:25:15 +00:00
# No additional sed expressions should be added to this list. Going forward
# we should just use the variable names choosen by protobuf. These are left
# here for backwards compatability, namely for SDK compilation.
Add plugin version to GRPC interface (#17088)
Add plugin version to GRPC interface
Added a version interface in the sdk/logical so that it can be shared between all plugin types, and then wired it up to RunningVersion in the mounts, auth list, and database systems.
I've tested that this works with auth, database, and secrets plugin types, with the following logic to populate RunningVersion:
If a plugin has a PluginVersion() method implemented, then that is used
If not, and the plugin is built into the Vault binary, then the go.mod version is used
Otherwise, the it will be the empty string.
My apologies for the length of this PR.
* Placeholder backend should be external
We use a placeholder backend (previously a framework.Backend) before a
GRPC plugin is lazy-loaded. This makes us later think the plugin is a
builtin plugin.
So we added a `placeholderBackend` type that overrides the
`IsExternal()` method so that later we know that the plugin is external,
and don't give it a default builtin version.
2022-09-15 23:37:59 +00:00
$( SED) -i -e 's/Id/ID/' vault/request_forwarding_service.pb.go
$( SED) -i -e 's/Idp/IDP/' -e 's/Url/URL/' -e 's/Id/ID/' -e 's/IDentity/Identity/' -e 's/EntityId/EntityID/' -e 's/Api/API/' -e 's/Qr/QR/' -e 's/Totp/TOTP/' -e 's/Mfa/MFA/' -e 's/Pingid/PingID/' -e 's/namespaceId/namespaceID/' -e 's/Ttl/TTL/' -e 's/BoundCidrs/BoundCIDRs/' helper/identity/types.pb.go helper/identity/mfa/types.pb.go helper/storagepacker/types.pb.go sdk/plugin/pb/backend.pb.go sdk/logical/identity.pb.go vault/activity/activity_log.pb.go
2021-09-30 01:25:15 +00:00
# This will inject the sentinel struct tags as decorated in the proto files.
protoc-go-inject-tag -input= ./helper/identity/types.pb.go
protoc-go-inject-tag -input= ./helper/identity/mfa/types.pb.go
2016-10-20 16:39:19 +00:00
2017-05-19 12:34:17 +00:00
fmtcheck :
2018-09-01 15:10:29 +00:00
@true
2018-09-01 15:17:02 +00:00
#@sh -c "'$(CURDIR)/scripts/gofmtcheck.sh'"
2017-05-19 12:34:17 +00:00
fmt :
2023-03-09 18:46:54 +00:00
find . -name '*.go' | grep -v pb.go | grep -v vendor | xargs go run mvdan.cc/gofumpt -w
2017-05-19 12:34:17 +00:00
2022-07-20 17:44:41 +00:00
semgrep :
2022-03-18 18:14:03 +00:00
semgrep --include '*.go' --exclude 'vendor' -a -f tools/semgrep .
2022-07-20 17:44:41 +00:00
semgrep-ci :
2022-03-18 18:14:03 +00:00
semgrep --error --include '*.go' --exclude 'vendor' -f tools/semgrep/ci .
2019-03-25 17:07:14 +00:00
assetcheck :
@echo "==> Checking compiled UI assets..."
@sh -c " ' $( CURDIR) /scripts/assetcheck.sh' "
2017-10-19 16:55:39 +00:00
spellcheck :
@echo "==> Spell checking website..."
@misspell -error -source= text website/source
2017-08-11 01:28:18 +00:00
mysql-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/mysql-database-plugin ./plugins/database/mysql/mysql-database-plugin
2017-08-11 01:28:18 +00:00
mysql-legacy-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/mysql-legacy-database-plugin ./plugins/database/mysql/mysql-legacy-database-plugin
2017-08-11 01:28:18 +00:00
cassandra-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/cassandra-database-plugin ./plugins/database/cassandra/cassandra-database-plugin
2017-08-11 01:28:18 +00:00
2019-01-18 01:14:57 +00:00
influxdb-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/influxdb-database-plugin ./plugins/database/influxdb/influxdb-database-plugin
2019-01-18 01:14:57 +00:00
2017-08-11 01:28:18 +00:00
postgresql-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/postgresql-database-plugin ./plugins/database/postgresql/postgresql-database-plugin
2017-08-11 01:28:18 +00:00
mssql-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/mssql-database-plugin ./plugins/database/mssql/mssql-database-plugin
2017-08-11 01:28:18 +00:00
hana-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/hana-database-plugin ./plugins/database/hana/hana-database-plugin
2017-08-11 01:28:18 +00:00
mongodb-database-plugin :
2020-01-09 17:35:32 +00:00
@CGO_ENABLED= 0 $( GO_CMD) build -o bin/mongodb-database-plugin ./plugins/database/mongodb/mongodb-database-plugin
2017-08-11 01:28:18 +00:00
ci/packagespec (#9653)
* add packagespec build system
- The majority of changes in this commit are files generated
by packagespec (everything in the packages-oss.lock directory).
* add .yamllint
* update to packagespec@fd54aea4
* ci: bust packagespec cache
- Change to packagespec results in package IDs that can use
git tag refs, not just commit refs.
* update to packagepsec@5fc121d0
- This busts all caches, because of a change to the way we
no longer traverse from tag refs to commit refs, due to
the potential confusion this can cause.
- See https://github.com/hashicorp/packagespec/commit/fd54aea4827bb6cfd637c78a2ab6274111605330
for the original change to packagespec necessitating this.
* update to packagespec@5e6c87b6
- This completes the change to allowing git tag refs
to be used for source IDs, begun in f130b940a8fbe3e9398225b08ea1d63420bef7b6
* update to packagespec@4d3c9e8b
- This busts cache, needed to apply previous change.
* remove RELEASE_BUILD_WORKFLOW_NAME
* update packagespec, add watch-ci target
* fix package names (do not refer to EDITION)
* remove EDITION input from packages-oss.yml
* bump package cache, update packagespec
* update packagespec, add 'aliases' target
* update packagespec; less output noise
* ci: give release bundle file a better name
- When performing a release build, this will include the build ID
as part of the name, making it easier to distinguish from other
builds.
* ci: create aliases tarball artifact
* ci: cache package metadata files
* ci: add metadata artifact
* ci: bust circleci package cache
* Revert "ci: bust circleci package cache"
This reverts commit 1320d182613466f0999d63f5742db12ac17f8e92.
* ci: remove aliases artifact
* ci: use buildID not workflowName to id artifacts
* packages: add BUNDLE_NAME metadata
* do not cache package metadata with binaries
* ci: bump package cache
* ci: debugging
* ci: fix package cache; update packagespec
* ci: update packagespec to 10e7beb2
* ci: write package metadata and aliases
* ci: switch to .zip artifacts
* switch package bundle back to tar.gz (from zip)
- Because of the way zip works, the zip archive was over 2GB rather than under 750MB as with tar.gz.
* bump packagespec, adds list-staged-builds
* update packagespec
* add publish stub + general tidy up
* bump packagespec
* bump packagespec; add make publish-config
* Makefile: tidy up packagespec targets
* pass PRODUCT_REPO_ROOT to packagespec
* bump go to 1.14.6
* packages-oss.yml: use more explicit base image
* bump packagespec to b899b7c1
* bump packagespec to f040ce8f
* packages-oss.yml: pin base image to digest
- This digest is pointed to by debian:buster-20200720
- Using a specific digest ensures that builds use the same
base image in all contexts
* add release-repo; bump packagespec
* remove BUILD_TAGS and -tags flag
* bump packagespec to e444f742
* bump to go1.14.7
* ci: bump to go1.14.7
2020-08-11 09:00:59 +00:00
.PHONY : ci -config
2020-10-07 08:35:26 +00:00
ci-config :
ci/packagespec (#9653)
* add packagespec build system
- The majority of changes in this commit are files generated
by packagespec (everything in the packages-oss.lock directory).
* add .yamllint
* update to packagespec@fd54aea4
* ci: bust packagespec cache
- Change to packagespec results in package IDs that can use
git tag refs, not just commit refs.
* update to packagepsec@5fc121d0
- This busts all caches, because of a change to the way we
no longer traverse from tag refs to commit refs, due to
the potential confusion this can cause.
- See https://github.com/hashicorp/packagespec/commit/fd54aea4827bb6cfd637c78a2ab6274111605330
for the original change to packagespec necessitating this.
* update to packagespec@5e6c87b6
- This completes the change to allowing git tag refs
to be used for source IDs, begun in f130b940a8fbe3e9398225b08ea1d63420bef7b6
* update to packagespec@4d3c9e8b
- This busts cache, needed to apply previous change.
* remove RELEASE_BUILD_WORKFLOW_NAME
* update packagespec, add watch-ci target
* fix package names (do not refer to EDITION)
* remove EDITION input from packages-oss.yml
* bump package cache, update packagespec
* update packagespec, add 'aliases' target
* update packagespec; less output noise
* ci: give release bundle file a better name
- When performing a release build, this will include the build ID
as part of the name, making it easier to distinguish from other
builds.
* ci: create aliases tarball artifact
* ci: cache package metadata files
* ci: add metadata artifact
* ci: bust circleci package cache
* Revert "ci: bust circleci package cache"
This reverts commit 1320d182613466f0999d63f5742db12ac17f8e92.
* ci: remove aliases artifact
* ci: use buildID not workflowName to id artifacts
* packages: add BUNDLE_NAME metadata
* do not cache package metadata with binaries
* ci: bump package cache
* ci: debugging
* ci: fix package cache; update packagespec
* ci: update packagespec to 10e7beb2
* ci: write package metadata and aliases
* ci: switch to .zip artifacts
* switch package bundle back to tar.gz (from zip)
- Because of the way zip works, the zip archive was over 2GB rather than under 750MB as with tar.gz.
* bump packagespec, adds list-staged-builds
* update packagespec
* add publish stub + general tidy up
* bump packagespec
* bump packagespec; add make publish-config
* Makefile: tidy up packagespec targets
* pass PRODUCT_REPO_ROOT to packagespec
* bump go to 1.14.6
* packages-oss.yml: use more explicit base image
* bump packagespec to b899b7c1
* bump packagespec to f040ce8f
* packages-oss.yml: pin base image to digest
- This digest is pointed to by debian:buster-20200720
- Using a specific digest ensures that builds use the same
base image in all contexts
* add release-repo; bump packagespec
* remove BUILD_TAGS and -tags flag
* bump packagespec to e444f742
* bump to go1.14.7
* ci: bump to go1.14.7
2020-08-11 09:00:59 +00:00
@$( MAKE) -C .circleci ci-config
.PHONY : ci -verify
ci-verify :
@$( MAKE) -C .circleci ci-verify
2023-02-07 09:41:04 +00:00
.PHONY : bin default prep test vet bootstrap ci -bootstrap fmt fmtcheck mysql -database -plugin mysql -legacy -database -plugin cassandra -database -plugin influxdb -database -plugin postgresql -database -plugin mssql -database -plugin hana -database -plugin mongodb -database -plugin ember -dist ember -dist -dev static -dist static -dist -dev assetcheck check -vault -in -path packages build build -ci semgrep semgrep -ci vet -godoctests ci -vet -godoctests
2019-01-17 23:19:54 +00:00
2021-08-18 15:05:11 +00:00
.NOTPARALLEL : ember -dist ember -dist -dev
2020-09-28 12:53:39 +00:00
2022-12-12 20:46:04 +00:00
# These ci targets are used for used for building and testing in Github Actions
# workflows and for Enos scenarios.
.PHONY : ci -build
ci-build :
@$( CURDIR) /scripts/ci-helper.sh build
.PHONY : ci -build -ui
ci-build-ui :
@$( CURDIR) /scripts/ci-helper.sh build-ui
.PHONY : ci -bundle
ci-bundle :
@$( CURDIR) /scripts/ci-helper.sh bundle
.PHONY : ci -filter -matrix
ci-filter-matrix :
@$( CURDIR) /scripts/ci-helper.sh matrix-filter-file
.PHONY : ci -get -artifact -basename
ci-get-artifact-basename :
@$( CURDIR) /scripts/ci-helper.sh artifact-basename
.PHONY : ci -get -date
ci-get-date :
@$( CURDIR) /scripts/ci-helper.sh date
.PHONY : ci -get -matrix -group -id
ci-get-matrix-group-id :
@$( CURDIR) /scripts/ci-helper.sh matrix-group-id
.PHONY : ci -get -revision
ci-get-revision :
@$( CURDIR) /scripts/ci-helper.sh revision
.PHONY : ci -get -version
ci-get-version :
@$( CURDIR) /scripts/ci-helper.sh version
.PHONY : ci -get -version -base
ci-get-version-base :
@$( CURDIR) /scripts/ci-helper.sh version-base
.PHONY : ci -get -version -major
ci-get-version-major :
@$( CURDIR) /scripts/ci-helper.sh version-major
.PHONY : ci -get -version -meta
ci-get-version-meta :
@$( CURDIR) /scripts/ci-helper.sh version-meta
.PHONY : ci -get -version -minor
ci-get-version-minor :
@$( CURDIR) /scripts/ci-helper.sh version-minor
.PHONY : ci -get -version -package
ci-get-version-package :
@$( CURDIR) /scripts/ci-helper.sh version-package
.PHONY : ci -get -version -patch
ci-get-version-patch :
@$( CURDIR) /scripts/ci-helper.sh version-patch
.PHONY : ci -get -version -pre
ci-get-version-pre :
@$( CURDIR) /scripts/ci-helper.sh version-pre
.PHONY : ci -prepare -legal
ci-prepare-legal :
@$( CURDIR) /scripts/ci-helper.sh prepare-legal