eba07dabe5
This surfaces test failures more clearly on CircleCI by adding testem-multi-reporter to report both via the default TAP reporter as well as an xUnit reporter whose output is stored as an artefact.
1054 lines
33 KiB
YAML
Generated
1054 lines
33 KiB
YAML
Generated
### ***
|
|
### 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'.
|
|
### ***
|
|
version: 2
|
|
jobs:
|
|
test-nomad:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./nomad/...
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-api:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./api/...
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-exec:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./drivers/exec
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-client:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./client/...
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-shared-exec:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./drivers/shared/executor
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-ui:
|
|
docker:
|
|
- environment:
|
|
JOBS: 2
|
|
image: circleci/node:10-browsers
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "ui/yarn.lock" }}
|
|
- v1-deps-
|
|
- run:
|
|
command: cd ui && yarn install
|
|
name: yarn install
|
|
- save_cache:
|
|
key: v1-deps-{{ checksum "ui/yarn.lock" }}
|
|
paths:
|
|
- ./ui/node_modules
|
|
- run:
|
|
command: cd ui && yarn run lint:js
|
|
name: lint:js
|
|
- run:
|
|
command: cd ui && yarn run lint:hbs
|
|
name: lint:hbs
|
|
- run:
|
|
command: mkdir -p /tmp/test-reports && cd ui && yarn test
|
|
name: Ember tests
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
lint-go:
|
|
docker:
|
|
- image: golang:1.14.1
|
|
working_directory: /go/src/github.com/hashicorp/nomad
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: apt-get update; apt-get install -y shellcheck sudo unzip
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: "CCI_VERSION=\"0.1.5879\"\nCCI_SHA256=\"f178ea62c781aec06267017404f87983c87f171fd0e66ef3737916246ae66dd6\"\n\nURL=\"https://github.com/CircleCI-Public/circleci-cli/releases/download/v${CCI_VERSION}/circleci-cli_${CCI_VERSION}_linux_amd64.tar.gz\"\n\nmkdir -p /tmp/circleci-cli/\ncurl --fail --show-error --location \\\n -o /tmp/circleci-cli/cli.tar.gz \"${URL}\"\n\necho \"$CCI_SHA256 /tmp/circleci-cli/cli.tar.gz\" | sha256sum -c\n\ntar -xz --strip-components=1 \\\n -C /tmp/circleci-cli \\\n -f /tmp/circleci-cli/cli.tar.gz \\\n \"circleci-cli_${CCI_VERSION}_linux_amd64/circleci\" \n\nsudo cp /tmp/circleci-cli/circleci /usr/bin/circleci-local-cli\n\ncircleci-local-cli version\n"
|
|
name: Install CircleCI CLI 0.1.5879
|
|
- run:
|
|
command: make deps lint-deps
|
|
- run:
|
|
command: make check
|
|
- run:
|
|
command: make checkscripts
|
|
- run:
|
|
command: make -C .circleci CIRCLECI="circleci-local-cli --skip-update-check" ci-verify
|
|
name: check .circleci/config.yml is up-to-date
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
website-docker-image:
|
|
docker:
|
|
- image: circleci/buildpack-deps
|
|
shell: /usr/bin/env bash -euo pipefail -c
|
|
steps:
|
|
- checkout
|
|
- setup_remote_docker
|
|
- run:
|
|
command: |
|
|
# There is an edge case that would cause an issue here - if dependencies are updated to an exact copy
|
|
# of a previous version, for example if packge-lock.json is reverted, we need to manually push the new
|
|
# image to the "latest" tag
|
|
# Ignore job if running an enterprise build
|
|
IMAGE_TAG=$(cat website/Dockerfile website/package-lock.json | sha256sum | awk '{print $1;}')
|
|
echo "Using $IMAGE_TAG"
|
|
if [ "$CIRCLE_REPOSITORY_URL" != "git@github.com:hashicorp/nomad.git" ]; then
|
|
echo "Not Nomad OSS Repo, not building website docker image"
|
|
elif curl https://hub.docker.com/v2/repositories/hashicorp/nomad-website/tags/$IMAGE_TAG -fsL > /dev/null; then
|
|
echo "Dependencies have not changed, not building a new website docker image."
|
|
else
|
|
cd website/
|
|
docker build -t hashicorp/nomad-website:$IMAGE_TAG .
|
|
docker tag hashicorp/nomad-website:$IMAGE_TAG hashicorp/nomad-website:latest
|
|
docker login -u $WEBSITE_DOCKER_USER -p $WEBSITE_DOCKER_PASS
|
|
docker push hashicorp/nomad-website
|
|
fi
|
|
name: Build Docker Image if Necessary
|
|
test-other:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ''
|
|
- GOTEST_PKGS_EXCLUDE: ./api|./client|./drivers/docker|./drivers/exec|./drivers/shared/executor|./nomad|./devices
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-devices:
|
|
docker:
|
|
- image: golang:1.14.1
|
|
working_directory: /go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./devices/...
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: apt-get update; apt-get install -y shellcheck sudo unzip
|
|
- run:
|
|
command: make deps
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
build-darwin-binaries:
|
|
macos:
|
|
xcode: 11.3.1
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: echo 'export PATH="${GOPATH}/bin:${HOME}/goinstall/go/bin:$PATH"' >> ${BASH_ENV}
|
|
name: configure PATH
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf ~/goinstall/go
|
|
sudo mkdir -p ~/goinstall
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C ~/goinstall -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: source ${BASH_ENV} && make deps
|
|
- run:
|
|
command: brew install protobuf
|
|
- run:
|
|
command: sudo -E PATH="$GOPATH/bin:${HOME}/goinstall/go/bin:$PATH" make generate-structs
|
|
- run:
|
|
command: source ${BASH_ENV} && make pkg/darwin_amd64.zip
|
|
- store_artifacts:
|
|
destination: /builds/nomad_darwin_amd64.zip
|
|
path: pkg/darwin_amd64.zip
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /Users/distiller/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
test-docker:
|
|
machine:
|
|
image: circleci/classic:201808-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./drivers/docker
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
build-binaries:
|
|
docker:
|
|
- image: golang:1.14.1
|
|
working_directory: /go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GO_TAGS: codegen_generated
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: apt-get update; apt-get install -y sudo unzip zip
|
|
- run:
|
|
command: make deps
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
- run:
|
|
command: make pkg/windows_amd64.zip pkg/linux_amd64.zip
|
|
- store_artifacts:
|
|
destination: /builds/nomad_windows_amd64.zip
|
|
path: pkg/windows_amd64.zip
|
|
- store_artifacts:
|
|
destination: /builds/nomad_linux_amd64.zip
|
|
path: pkg/linux_amd64.zip
|
|
test-e2e:
|
|
docker:
|
|
- image: golang:1.14.1
|
|
working_directory: /go/src/github.com/hashicorp/nomad
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: apt-get update; apt-get install -y sudo unzip
|
|
- run:
|
|
command: |
|
|
groupadd --gid 3434 circleci
|
|
useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci
|
|
echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci
|
|
echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep
|
|
chown -R circleci:circleci /go
|
|
name: prepare non-root user
|
|
- run:
|
|
command: sudo -E -H -u circleci PATH=${PATH} make deps
|
|
- run:
|
|
command: sudo -E -H -u circleci PATH=${PATH} make e2e-test
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
test-32bit:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.14.1
|
|
- GOMAXPROCS: 1
|
|
- GOPATH: /home/circleci/go
|
|
- GOTESTSUM_JSONFILE: /tmp/test-reports/testjsonfile.json
|
|
- GOTESTSUM_JUNITFILE: /tmp/test-reports/results.xml
|
|
- NOMAD_SLOW_TEST: 1
|
|
- PAGER: cat
|
|
- GOTEST_PKGS: ./client/fingerprint
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: '386'
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
os="linux"
|
|
if [[ "$OSTYPE" == "darwin"* ]]
|
|
then
|
|
os="darwin"
|
|
fi
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
sudo rm -rf /usr/local/go
|
|
sudo mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
name: install golang
|
|
- run:
|
|
command: |
|
|
sudo rm -rf /usr/bin/protoc
|
|
sudo ./scripts/vagrant-linux-priv-protoc.sh
|
|
name: install protoc
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.6.4
|
|
- run:
|
|
command: |
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
name: Install Vault 1.2.4
|
|
- run:
|
|
command: |
|
|
if [ ! -z $GOTESTARCH ] && [ $GOTESTARCH == "386" ]; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-multilib
|
|
else
|
|
echo "Skipping 32bit lib installation while building for not 386"
|
|
fi
|
|
name: Install 32bit gcc libs
|
|
- run:
|
|
command: PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make bootstrap
|
|
- run:
|
|
command: |
|
|
if [ -z $GOTEST_PKGS_EXCLUDE ];
|
|
then
|
|
unset GOTEST_PKGS_EXCLUDE
|
|
else
|
|
unset GOTEST_PKGS
|
|
fi
|
|
|
|
if [ ! -z $GOTESTARCH ]; then
|
|
export GOARCH="$GOTESTARCH";
|
|
fi
|
|
|
|
mkdir -p /tmp/test-reports
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make generate-structs
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
workflows:
|
|
build-test:
|
|
jobs:
|
|
- build-binaries:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- stable-website
|
|
- /^.-ui\b.*/
|
|
- lint-go:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- build-darwin-binaries:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-client:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-nomad:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-api:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-devices:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-other:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-docker:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-exec:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-shared-exec:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-32bit:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-e2e:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-ui:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- stable-website
|
|
- /^docs-.*/
|
|
website:
|
|
jobs:
|
|
- website-docker-image:
|
|
filters:
|
|
branches:
|
|
only:
|
|
- master
|
|
context: static-sites
|
|
version: 2
|