mirror of https://github.com/hashicorp/boundary
ci: Remove CircleCI configuration (#3065)
CI is now performed via Github Actions. Some notable Github Action
workflows that replace the CircleCI jobs are:
- test: replaces CCI build, test-api, test-sdk
- test-sql: replaces CCI test-sql
- make-gen-delta: replaces CCI make-gen-delta
See:
https://github.com/hashicorp/boundary/actions/workflows/test.yml
https://github.com/hashicorp/boundary/actions/workflows/test-sql.yml
https://github.com/hashicorp/boundary/actions/workflows/make-gen-delta.yml
https://docs.github.com/en/actions
https://cli.github.com/manual/gh_run
pull/3070/head
parent
1821cb4631
commit
000fc7c0e0
@ -1 +0,0 @@
|
||||
config.yml linguist-generated
|
||||
@ -1 +0,0 @@
|
||||
.tmp/
|
||||
@ -1,95 +0,0 @@
|
||||
# Set SHELL to 'strict mode' without using .SHELLFLAGS for max compatibility.
|
||||
# See https://fieldnotes.tech/how-to-shell-for-compatible-makefiles/
|
||||
SHELL := /usr/bin/env bash -euo pipefail -c
|
||||
|
||||
# CONFIG is the name of the make target someone
|
||||
# would invoke to update the main config file (config.yml).
|
||||
CONFIG ?= ci-config
|
||||
# VERIFY is the name of the make target someone
|
||||
# would invoke to verify the config file.
|
||||
VERIFY ?= ci-verify
|
||||
|
||||
CIRCLECI := circleci --skip-update-check
|
||||
ifeq ($(DEBUG_CIRCLECI_CLI),YES)
|
||||
CIRCLECI += --debug
|
||||
endif
|
||||
|
||||
# For config processing, always refer to circleci.com not self-hosted circleci,
|
||||
# because self-hosted does not currently support the necessary API.
|
||||
CIRCLECI_CLI_HOST := https://circleci.com
|
||||
export CIRCLECI_CLI_HOST
|
||||
|
||||
# Set up some documentation/help message variables.
|
||||
# We do not attempt to install the CircleCI CLI from this Makefile.
|
||||
CCI_INSTALL_LINK := https://circleci.com/docs/2.0/local-cli/\#installation
|
||||
CCI_INSTALL_MSG := Please install CircleCI CLI. See $(CCI_INSTALL_LINK)
|
||||
CCI_VERSION := $(shell $(CIRCLECI) version 2> /dev/null)
|
||||
ifeq ($(CCI_VERSION),)
|
||||
# Attempting to use the CLI fails with installation instructions.
|
||||
CIRCLECI := echo '$(CCI_INSTALL_MSG)'; exit 1; \#
|
||||
endif
|
||||
|
||||
SOURCE_DIR := config
|
||||
SOURCE_YML := $(shell [ ! -d $(SOURCE_DIR) ] || find $(SOURCE_DIR) -name '*.yml')
|
||||
CONFIG_SOURCE := Makefile $(SOURCE_YML) | $(SOURCE_DIR)
|
||||
OUT := config.yml
|
||||
TMP := .tmp/config-processed
|
||||
CONFIG_PACKED := .tmp/config-packed
|
||||
|
||||
default: help
|
||||
|
||||
help:
|
||||
@echo "Usage:"
|
||||
@echo " make $(CONFIG): recompile config.yml from $(SOURCE_DIR)/"
|
||||
@echo " make $(VERIFY): verify that config.yml is a true mapping from $(SOURCE_DIR)/"
|
||||
@echo
|
||||
@echo "Diagnostics:"
|
||||
@[ -z "$(CCI_VERSION)" ] || echo " circleci-cli version $(CCI_VERSION)"
|
||||
@[ -n "$(CCI_VERSION)" ] || echo " $(CCI_INSTALL_MSG)"
|
||||
|
||||
$(SOURCE_DIR):
|
||||
@echo No source directory $(SOURCE_DIR) found.; exit 1
|
||||
|
||||
# Make sure our .tmp dir exists.
|
||||
$(shell [ -d .tmp ] || mkdir .tmp)
|
||||
|
||||
.PHONY: $(CONFIG)
|
||||
$(CONFIG): $(OUT)
|
||||
|
||||
.PHONY: $(VERIFY)
|
||||
$(VERIFY): config-up-to-date
|
||||
@$(CIRCLECI) config validate $(OUT)
|
||||
|
||||
define GENERATED_FILE_HEADER
|
||||
### ***
|
||||
### WARNING: DO NOT manually EDIT or MERGE this file, it is generated by 'make $(CONFIG)'.
|
||||
### INSTEAD: Edit or merge the source in $(SOURCE_DIR)/ then run 'make $(CONFIG)'.
|
||||
### ***
|
||||
endef
|
||||
export GENERATED_FILE_HEADER
|
||||
|
||||
# GEN_CONFIG writes the config to a temporary file. If the whole process succeeds,
|
||||
# it them moves that file to $@. This makes is an atomic operation, so if it fails
|
||||
# make doesn't consider a half-baked file up to date.
|
||||
define GEN_CONFIG
|
||||
@$(CIRCLECI) config pack $(SOURCE_DIR) > $(CONFIG_PACKED)
|
||||
@echo "$$GENERATED_FILE_HEADER" > $@.tmp || { rm -f $@; exit 1; }
|
||||
@$(CIRCLECI) config process $(CONFIG_PACKED) >> $@.tmp || { rm -f $@.tmp; exit 1; }
|
||||
@mv -f $@.tmp $@
|
||||
endef
|
||||
|
||||
$(OUT): $(CONFIG_SOURCE)
|
||||
$(GEN_CONFIG)
|
||||
@echo "$@ updated"
|
||||
|
||||
$(TMP): $(CONFIG_SOURCE)
|
||||
$(GEN_CONFIG)
|
||||
|
||||
.PHONY: config-up-to-date
|
||||
config-up-to-date: $(TMP) # Note this must not depend on $(OUT)!
|
||||
@if diff -w $(OUT) $<; then \
|
||||
echo "Generated $(OUT) is up to date!"; \
|
||||
else \
|
||||
echo "Generated $(OUT) is out of date, run make $(CONFIG) to update."; \
|
||||
exit 1; \
|
||||
fi
|
||||
@ -1,130 +0,0 @@
|
||||
# How to use CircleCI multi-file config
|
||||
|
||||
This README and the Makefile should be in your `.circleci` directory,
|
||||
in the root of your repository.
|
||||
All path references in this README assume we are in this `.circleci` directory.
|
||||
|
||||
The `Makefile` in this directory generates `./config.yml` in CircleCI 2.0 syntax,
|
||||
from the tree rooted at `./config/`, which contains files in CircleCI 2.0 or 2.1 syntax.
|
||||
|
||||
|
||||
## Quickstart
|
||||
|
||||
The basic workflow is:
|
||||
|
||||
- Edit source files in `./config/`
|
||||
- When you are done, run `make ci-config` to update `./config.yml`
|
||||
- Commit this entire `.circleci` directory, including that generated file together.
|
||||
- Run `make ci-verify` to ensure the current `./config.yml` is up to date with the source.
|
||||
|
||||
When merging this `.circleci` directory:
|
||||
|
||||
- Do not merge the generated `./config.yml` file, instead:
|
||||
- Merge the source files under `./config/`, and then
|
||||
- Run `make ci-config` to re-generate the merged `./config.yml`
|
||||
|
||||
And that's it, for more detail, read on!
|
||||
|
||||
|
||||
## How does it work, roughly?
|
||||
|
||||
CircleCI supports [generating a single config file from many],
|
||||
using the `$ circleci config pack` command.
|
||||
It also supports [expanding 2.1 syntax to 2.0 syntax]
|
||||
using the `$ circleci config process` command.
|
||||
We use these two commands, stitched together using the `Makefile`
|
||||
to implement the workflow.
|
||||
|
||||
[generating a single config file from many]: https://circleci.com/docs/2.0/local-cli/#packing-a-config
|
||||
[expanding 2.1 syntax to 2.0 syntax]: https://circleci.com/docs/2.0/local-cli/#processing-a-config
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
You will need the [CircleCI CLI tool] installed and working,
|
||||
at least version `0.1.5607`.
|
||||
You can [download this tool directly from GitHub Releases].
|
||||
|
||||
```
|
||||
$ circleci version
|
||||
0.1.5607+f705856
|
||||
```
|
||||
|
||||
[CircleCI CLI tool]: https://circleci.com/docs/2.0/local-cli/
|
||||
[download this tool directly from GitHub Releases]: https://github.com/CircleCI-Public/circleci-cli/releases
|
||||
|
||||
|
||||
## Updating the config source
|
||||
|
||||
Before making changes, be sure to understand the layout
|
||||
of the `./config/` file tree, as well as circleci 2.1 syntax.
|
||||
See the [Syntax and layout] section below.
|
||||
|
||||
To update the config, you should edit, add or remove files
|
||||
in the `./config/` directory,
|
||||
and then run `make ci-config`.
|
||||
If that's successful,
|
||||
you should then commit every `*.yml` file in the tree rooted in this directory.
|
||||
That is: you should commit both the source under `./config/`
|
||||
and the generated file `./config.yml` at the same time, in the same commit.
|
||||
The included git pre-commit hook will help with this.
|
||||
Do not edit the `./config.yml` file directly, as you will lose your changes
|
||||
next time `make ci-config` is run.
|
||||
|
||||
[Syntax and layout]: #syntax-and-layout
|
||||
|
||||
|
||||
### Verifying `./config.yml`
|
||||
|
||||
To check whether or not the current `./config.yml` is up to date with the source
|
||||
and valid, run `$ make ci-verify`.
|
||||
Note that `$ make ci-verify` should be run in CI,
|
||||
in case not everyone has the git pre-commit hook set up correctly.
|
||||
|
||||
|
||||
#### Example shell session
|
||||
|
||||
```sh
|
||||
$ make ci-config
|
||||
config.yml updated
|
||||
$ git add -A . # The -A makes sure to include deletions/renames etc.
|
||||
$ git commit -m "ci: blah blah blah"
|
||||
Changes detected in .circleci/, running 'make -C .circleci ci-verify'
|
||||
--> Generated config.yml is up to date!
|
||||
--> Config file at config.yml is valid.
|
||||
```
|
||||
|
||||
|
||||
### Syntax and layout
|
||||
|
||||
It is important to understand the layout of the config directory.
|
||||
Read the documentation on [packing a config] for a full understanding
|
||||
of how multiple YAML files are merged by the circleci CLI tool.
|
||||
|
||||
[packing a config]: https://circleci.com/docs/2.0/local-cli/#packing-a-config
|
||||
|
||||
Here is an example file tree (with comments added afterwards):
|
||||
|
||||
```sh
|
||||
$ tree .
|
||||
.
|
||||
├── Makefile
|
||||
├── README.md # This file.
|
||||
├── config # The source code for config.yml is rooted here.
|
||||
│ ├── @config.yml # Files beginning with @ are treated specially by `circleci config pack`
|
||||
│ ├── commands # Subdirectories of config become top-level keys.
|
||||
│ │ └── go_test.yml # Filenames (minus .yml) become top-level keys under
|
||||
│ │ └── go_build.yml # their parent (in this case "commands").
|
||||
│ │ # The contents of go_test.yml therefore are placed at: .commands.go_test:
|
||||
│ └── jobs # jobs also becomes a top-level key under config...
|
||||
│ ├── build.yml # ...and likewise filenames become keys under their parent.
|
||||
│ └── test.yml
|
||||
└── config.yml # The generated file in 2.0 syntax.
|
||||
```
|
||||
|
||||
About those `@` files... Preceding a filename with `@`
|
||||
indicates to `$ circleci config pack` that the contents of this YAML file
|
||||
should be at the top-level, rather than underneath a key named after their filename.
|
||||
This naming convention is unfortunate as it breaks autocompletion in bash,
|
||||
but there we go.
|
||||
|
||||
@ -1,330 +0,0 @@
|
||||
### ***
|
||||
### WARNING: DO NOT manually EDIT or MERGE this file, it is generated by 'make ci-config'.
|
||||
### INSTEAD: Edit or merge the source in config/ then run 'make ci-config'.
|
||||
### ***
|
||||
# Orb 'circleci/slack@3.4.2' resolved to 'circleci/slack@3.4.2'
|
||||
version: 2
|
||||
jobs:
|
||||
test-sql-13-alpine:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make test-sql POSTGRES_DOCKER_IMAGE_BASE=docker.mirror.hashicorp.services/postgres PG_DOCKER_TAG=13-alpine
|
||||
name: Run SQL PgTap Tests
|
||||
trigger-merge-to-downstream:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
./scripts/trigger-merge-to-downstream ${CIRCLE_BRANCH}
|
||||
name: Trigger Merge to Downstream
|
||||
test-api:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make install-go
|
||||
source ~/.bashrc
|
||||
echo 'export GOROOT=$GOROOT' >> "$BASH_ENV"
|
||||
echo 'export GOPATH=$GOPATH' >> "$BASH_ENV"
|
||||
echo 'export PATH=$PATH' >> "$BASH_ENV"
|
||||
echo "$ go version"
|
||||
go version
|
||||
name: Install go
|
||||
- run:
|
||||
command: |
|
||||
make test-api
|
||||
name: Run API Tests
|
||||
no_output_timeout: 15m
|
||||
test-sql-11-alpine:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make test-sql POSTGRES_DOCKER_IMAGE_BASE=docker.mirror.hashicorp.services/postgres PG_DOCKER_TAG=11-alpine
|
||||
name: Run SQL PgTap Tests
|
||||
make-gen-deltas:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make install-go
|
||||
source ~/.bashrc
|
||||
echo 'export GOROOT=$GOROOT' >> "$BASH_ENV"
|
||||
echo 'export GOPATH=$GOPATH' >> "$BASH_ENV"
|
||||
echo 'export PATH=$PATH' >> "$BASH_ENV"
|
||||
echo "$ go version"
|
||||
go version
|
||||
name: Install go
|
||||
- run:
|
||||
command: |
|
||||
make tools
|
||||
name: Install tools
|
||||
- run:
|
||||
command: |
|
||||
make gen
|
||||
echo "Testing git diffs..."
|
||||
git diff --exit-code
|
||||
git status --porcelain
|
||||
test -z "$(git status --porcelain)"
|
||||
name: Check make gen deltas
|
||||
test-sdk:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make install-go
|
||||
source ~/.bashrc
|
||||
echo 'export GOROOT=$GOROOT' >> "$BASH_ENV"
|
||||
echo 'export GOPATH=$GOPATH' >> "$BASH_ENV"
|
||||
echo 'export PATH=$PATH' >> "$BASH_ENV"
|
||||
echo "$ go version"
|
||||
go version
|
||||
name: Install go
|
||||
- run:
|
||||
command: |
|
||||
make test-sdk
|
||||
name: Run SDK Tests
|
||||
no_output_timeout: 15m
|
||||
test-sql-12-alpine:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make test-sql POSTGRES_DOCKER_IMAGE_BASE=docker.mirror.hashicorp.services/postgres PG_DOCKER_TAG=12-alpine
|
||||
name: Run SQL PgTap Tests
|
||||
build:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: large
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make install-go
|
||||
source ~/.bashrc
|
||||
echo 'export GOROOT=$GOROOT' >> "$BASH_ENV"
|
||||
echo 'export GOPATH=$GOPATH' >> "$BASH_ENV"
|
||||
echo 'export PATH=$PATH' >> "$BASH_ENV"
|
||||
echo "$ go version"
|
||||
go version
|
||||
name: Install go
|
||||
- run:
|
||||
command: |
|
||||
make tools
|
||||
name: Install tools
|
||||
- run:
|
||||
command: |
|
||||
which pg_isready || sudo apt-get update && sudo apt-get install -y postgresql-client
|
||||
make DOCKER_ARGS='-d' PG_OPTS='-c shared_buffers=256MB -c max_connections=200000' -C testing/dbtest/docker database-up
|
||||
until pg_isready -h 127.0.0.1; do docker container inspect boundary-sql-tests &> /dev/null || exit -1; sleep 1; done
|
||||
name: Initialize Test Database
|
||||
- run:
|
||||
command: |
|
||||
make test-ci
|
||||
name: Run Acceptance Tests
|
||||
no_output_timeout: 15m
|
||||
- run:
|
||||
command: |
|
||||
make -C testing/dbtest/docker clean
|
||||
name: Cleanup
|
||||
when: always
|
||||
test-sql-latest:
|
||||
machine:
|
||||
image: ubuntu-2004:202111-01
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
make test-sql POSTGRES_DOCKER_IMAGE_BASE=docker.mirror.hashicorp.services/postgres PG_DOCKER_TAG=latest
|
||||
name: Run SQL PgTap Tests
|
||||
workflows:
|
||||
ci:
|
||||
jobs:
|
||||
- build
|
||||
- test-api
|
||||
- test-sdk
|
||||
- test-sql-latest
|
||||
- test-sql-11-alpine
|
||||
- test-sql-12-alpine
|
||||
- test-sql-13-alpine
|
||||
- make-gen-deltas
|
||||
trigger-merge-to-downstream:
|
||||
jobs:
|
||||
- trigger-merge-to-downstream:
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- main
|
||||
- /release\/.*/
|
||||
version: 2
|
||||
|
||||
# Original config.yml file:
|
||||
# commands:
|
||||
# install-go:
|
||||
# description: |
|
||||
# Ensure the right version of Go is installed and set PATH, GOPATH, GOROOT
|
||||
# steps:
|
||||
# - run:
|
||||
# command: |
|
||||
# make install-go
|
||||
# source ~/.bashrc
|
||||
# echo 'export GOROOT=$GOROOT' >> \"$BASH_ENV\"
|
||||
# echo 'export GOPATH=$GOPATH' >> \"$BASH_ENV\"
|
||||
# echo 'export PATH=$PATH' >> \"$BASH_ENV\"
|
||||
# echo \"$ go version\"
|
||||
# go version
|
||||
# name: Install go
|
||||
# install-tools:
|
||||
# description: |
|
||||
# Install tools using the Makefile
|
||||
# steps:
|
||||
# - run:
|
||||
# command: |
|
||||
# make tools
|
||||
# name: Install tools
|
||||
# executors:
|
||||
# go-machine:
|
||||
# machine:
|
||||
# image: ubuntu-2004:202111-01
|
||||
# resource_class: large
|
||||
# working_directory: ~/boundary
|
||||
# go-machine-medium:
|
||||
# machine:
|
||||
# image: ubuntu-2004:202111-01
|
||||
# resource_class: medium
|
||||
# working_directory: ~/boundary
|
||||
# jobs:
|
||||
# build:
|
||||
# executor: go-machine
|
||||
# steps:
|
||||
# - checkout
|
||||
# - install-go
|
||||
# - install-tools
|
||||
# - run:
|
||||
# command: |
|
||||
# which pg_isready || sudo apt-get update && sudo apt-get install -y postgresql-client
|
||||
# make DOCKER_ARGS='-d' PG_OPTS='-c shared_buffers=256MB -c max_connections=200000' -C testing/dbtest/docker database-up
|
||||
# until pg_isready -h 127.0.0.1; do docker container inspect boundary-sql-tests &> /dev/null || exit -1; sleep 1; done
|
||||
# name: Initialize Test Database
|
||||
# - run:
|
||||
# command: |
|
||||
# make test-ci
|
||||
# name: Run Acceptance Tests
|
||||
# no_output_timeout: 15m
|
||||
# - run:
|
||||
# command: |
|
||||
# make -C testing/dbtest/docker clean
|
||||
# name: Cleanup
|
||||
# when: always
|
||||
# make-gen-deltas:
|
||||
# executor: go-machine-medium
|
||||
# steps:
|
||||
# - checkout
|
||||
# - install-go
|
||||
# - install-tools
|
||||
# - run:
|
||||
# command: |
|
||||
# make gen
|
||||
# echo \"Testing git diffs...\"
|
||||
# git diff --exit-code
|
||||
# git status --porcelain
|
||||
# test -z \"$(git status --porcelain)\"
|
||||
# name: Check make gen deltas
|
||||
# test-api:
|
||||
# executor: go-machine-medium
|
||||
# steps:
|
||||
# - checkout
|
||||
# - install-go
|
||||
# - run:
|
||||
# command: |
|
||||
# make test-api
|
||||
# name: Run API Tests
|
||||
# no_output_timeout: 15m
|
||||
# test-sdk:
|
||||
# executor: go-machine-medium
|
||||
# steps:
|
||||
# - checkout
|
||||
# - install-go
|
||||
# - run:
|
||||
# command: |
|
||||
# make test-sdk
|
||||
# name: Run SDK Tests
|
||||
# no_output_timeout: 15m
|
||||
# test-sql:
|
||||
# executor: go-machine-medium
|
||||
# parameters:
|
||||
# postgres-version:
|
||||
# type: string
|
||||
# steps:
|
||||
# - checkout
|
||||
# - run:
|
||||
# command: |
|
||||
# make test-sql POSTGRES_DOCKER_IMAGE_BASE=docker.mirror.hashicorp.services/postgres PG_DOCKER_TAG=<< parameters.postgres-version >>
|
||||
# name: Run SQL PgTap Tests
|
||||
# trigger-merge-to-downstream:
|
||||
# executor: go-machine-medium
|
||||
# steps:
|
||||
# - checkout
|
||||
# - run:
|
||||
# command: |
|
||||
# ./scripts/trigger-merge-to-downstream ${CIRCLE_BRANCH}
|
||||
# name: Trigger Merge to Downstream
|
||||
# orbs:
|
||||
# slack: circleci/slack@3.4.2
|
||||
# version: 2.1
|
||||
# workflows:
|
||||
# ci:
|
||||
# jobs:
|
||||
# - build
|
||||
# - test-api
|
||||
# - test-sdk
|
||||
# - test-sql:
|
||||
# matrix:
|
||||
# parameters:
|
||||
# postgres-version:
|
||||
# - latest
|
||||
# - 11-alpine
|
||||
# - 12-alpine
|
||||
# - 13-alpine
|
||||
# - make-gen-deltas
|
||||
# trigger-merge-to-downstream:
|
||||
# jobs:
|
||||
# - trigger-merge-to-downstream:
|
||||
# filters:
|
||||
# branches:
|
||||
# only:
|
||||
# - main
|
||||
# - /release\\/.*/
|
||||
@ -1,4 +0,0 @@
|
||||
version: 2.1
|
||||
|
||||
orbs:
|
||||
slack: circleci/slack@3.4.2
|
||||
@ -1,14 +0,0 @@
|
||||
---
|
||||
description: >
|
||||
Ensure the right version of Go is installed and set PATH, GOPATH, GOROOT
|
||||
steps:
|
||||
- run:
|
||||
name: "Install go"
|
||||
command: |
|
||||
make install-go
|
||||
source ~/.bashrc
|
||||
echo 'export GOROOT=$GOROOT' >> "$BASH_ENV"
|
||||
echo 'export GOPATH=$GOPATH' >> "$BASH_ENV"
|
||||
echo 'export PATH=$PATH' >> "$BASH_ENV"
|
||||
echo "$ go version"
|
||||
go version
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
description: >
|
||||
Install tools using the Makefile
|
||||
steps:
|
||||
- run:
|
||||
name: "Install tools"
|
||||
command: |
|
||||
make tools
|
||||
@ -1,10 +0,0 @@
|
||||
go-machine:
|
||||
machine:
|
||||
image: 'ubuntu-2004:202111-01'
|
||||
resource_class: large
|
||||
working_directory: ~/boundary
|
||||
go-machine-medium:
|
||||
machine:
|
||||
image: 'ubuntu-2004:202111-01'
|
||||
resource_class: medium
|
||||
working_directory: ~/boundary
|
||||
@ -1,21 +0,0 @@
|
||||
executor: go-machine
|
||||
steps:
|
||||
- checkout
|
||||
- install-go
|
||||
- install-tools
|
||||
- run:
|
||||
name: "Initialize Test Database"
|
||||
command: |
|
||||
which pg_isready || sudo apt-get update && sudo apt-get install -y postgresql-client
|
||||
make DOCKER_ARGS='-d' PG_OPTS='-c shared_buffers=256MB -c max_connections=200000' -C testing/dbtest/docker database-up
|
||||
until pg_isready -h 127.0.0.1; do docker container inspect boundary-sql-tests &> /dev/null || exit -1; sleep 1; done
|
||||
- run:
|
||||
name: "Run Acceptance Tests"
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
make test-ci
|
||||
- run:
|
||||
name: "Cleanup"
|
||||
when: always
|
||||
command: |
|
||||
make -C testing/dbtest/docker clean
|
||||
@ -1,13 +0,0 @@
|
||||
executor: go-machine-medium
|
||||
steps:
|
||||
- checkout
|
||||
- install-go
|
||||
- install-tools
|
||||
- run:
|
||||
name: "Check make gen deltas"
|
||||
command: |
|
||||
make gen
|
||||
echo "Testing git diffs..."
|
||||
git diff --exit-code
|
||||
git status --porcelain
|
||||
test -z "$(git status --porcelain)"
|
||||
@ -1,9 +0,0 @@
|
||||
executor: go-machine-medium
|
||||
steps:
|
||||
- checkout
|
||||
- install-go
|
||||
- run:
|
||||
name: "Run API Tests"
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
make test-api
|
||||
@ -1,9 +0,0 @@
|
||||
executor: go-machine-medium
|
||||
steps:
|
||||
- checkout
|
||||
- install-go
|
||||
- run:
|
||||
name: "Run SDK Tests"
|
||||
no_output_timeout: 15m
|
||||
command: |
|
||||
make test-sdk
|
||||
@ -1,10 +0,0 @@
|
||||
executor: go-machine-medium
|
||||
parameters:
|
||||
postgres-version:
|
||||
type: string
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: "Run SQL PgTap Tests"
|
||||
command: |
|
||||
make test-sql POSTGRES_DOCKER_IMAGE_BASE=docker.mirror.hashicorp.services/postgres PG_DOCKER_TAG=<< parameters.postgres-version >>
|
||||
@ -1,7 +0,0 @@
|
||||
executor: go-machine-medium
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: "Trigger Merge to Downstream"
|
||||
command: |
|
||||
./scripts/trigger-merge-to-downstream ${CIRCLE_BRANCH}
|
||||
@ -1,9 +0,0 @@
|
||||
jobs:
|
||||
- build
|
||||
- test-api
|
||||
- test-sdk
|
||||
- test-sql:
|
||||
matrix:
|
||||
parameters:
|
||||
postgres-version: ["latest", "11-alpine", "12-alpine", "13-alpine"]
|
||||
- make-gen-deltas
|
||||
@ -1,7 +0,0 @@
|
||||
jobs:
|
||||
- trigger-merge-to-downstream:
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- main
|
||||
- /release\/.*/
|
||||
@ -1,45 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Check .circleci/config.yml is up to date and valid, and that all changes are
|
||||
# included together in this commit.
|
||||
|
||||
# Fail early if we accidentally used '.yaml' instead of '.yml'
|
||||
if ! git diff --name-only --cached --exit-code -- '.circleci/***.yaml'; then
|
||||
echo "ERROR: File(s) with .yaml extension detected. Please rename them .yml instead."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Succeed early if no changes to yml files in .circleci/ are currently staged.
|
||||
# make ci-verify is slow so we really don't want to run it unnecessarily.
|
||||
if git diff --name-only --cached --exit-code -- '.circleci/***.yml'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Make sure to add no explicit output before this line, as it would just be noise
|
||||
# for those making non-circleci changes.
|
||||
echo "==> Verifying config changes in .circleci/"
|
||||
echo "--> OK: All files are .yml not .yaml"
|
||||
|
||||
# Ensure commit includes _all_ files in .circleci/
|
||||
# So not only are the files up to date, but we are also committing them in one go.
|
||||
if ! git diff --name-only --exit-code -- '.circleci/***.yml'; then
|
||||
echo "ERROR: Some .yml diffs in .circleci/ are staged, others not."
|
||||
echo "Please commit the entire .circleci/ directory together, or omit it altogether."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Even untracked yml or yaml files will get baked into the output.
|
||||
# This is a loose check on _any_ untracked files in .circleci/ for simplicity.
|
||||
if [ -n "$(git ls-files --others --exclude-standard '.circleci/')" ]; then
|
||||
echo "ERROR: You have untracked files in .circleci/ please add or delete them."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--> OK: All .yml files in .circleci are staged."
|
||||
if ! make -C .circleci ci-verify; then
|
||||
echo "ERROR: make ci-verify failed"
|
||||
exit 1
|
||||
fi
|
||||
echo "--> OK: make ci-verify succeeded."
|
||||
@ -1,2 +0,0 @@
|
||||
/.circleci/config/@build-release.yml
|
||||
/packagespec.mk linguist-generated
|
||||
@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BRANCH=${1:="main"}
|
||||
|
||||
if [[ -z "${DOWNSTREAM_SLUG}" ]]; then
|
||||
echo "skipping, no downstream"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -z "${CIRCLE_REPOSITORY_URL}" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "${CIRCLE_REPOSITORY_URL}" == *"boundary-${DOWNSTREAM_SLUG}"* ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -z ${CIRCLE_CI_DOWNSTREAM_TOK} ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
curl -u "${CIRCLE_CI_DOWNSTREAM_TOK}:" \
|
||||
-d "build_parameters[CIRCLE_JOB]=merge-from-upstream" \
|
||||
"https://circleci.com/api/v1.1/project/github/hashicorp/boundary-${DOWNSTREAM_SLUG}/tree/${BRANCH}"
|
||||
Loading…
Reference in new issue