5dd77d1dc8
Currently we compile (but don't run) the e2e tests as part of `test-other`, which is skipped for branches named `e2e-*`. Move this check into the `test-e2e` job. Split out the vault compatibility integration check as its own makefile target for clarity.
1499 lines
47 KiB
YAML
Generated
1499 lines
47 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.15.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_MOD: ''
|
|
- GOTEST_PKGS: ./nomad/...
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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.15.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_MOD: api
|
|
- GOTEST_PKGS: ''
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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.15.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_MOD: ''
|
|
- GOTEST_PKGS: ./drivers/exec
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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.15.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_MOD: ''
|
|
- GOTEST_PKGS: ./client/...
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
name: Running Nomad Tests
|
|
no_output_timeout: 20m
|
|
- store_test_results:
|
|
path: /tmp/test-reports
|
|
- store_artifacts:
|
|
path: /tmp/test-reports
|
|
test-windows:
|
|
machine:
|
|
image: windows-server-2019-vs2019:stable
|
|
working_directory: c:\gopath\src\github.com\hashicorp\nomad
|
|
steps:
|
|
- run:
|
|
command: git config --global core.autocrlf false
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
mkdir -p $GOBIN
|
|
mkdir -p $GOTESTSUM_PATH
|
|
name: Setup
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
sudo rm -rf c:/go
|
|
sudo mkdir -p c:
|
|
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
|
|
sudo tar -C c: -xzf /tmp/golang.tar.gz
|
|
rm -rf /tmp/golang.tar.gz
|
|
else
|
|
rm -rf c:/go
|
|
mkdir -p c:
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d c:
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
name: Install golang
|
|
- run:
|
|
command: go version
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"$VAULT_VERSION"/vault_"$VAULT_VERSION"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- run:
|
|
command: vault version
|
|
- run:
|
|
command: choco install make
|
|
- run:
|
|
command: |
|
|
export PATH=$PATH:/c/go/bin:/c/gopath/bin
|
|
make deps
|
|
name: Install golang dependencies
|
|
- run:
|
|
command: docker pull hashicorpnomad/busybox-windows:server2016-0.1
|
|
name: Pre-download docker test image
|
|
- run:
|
|
command: |
|
|
export PATH=$PATH:/c/go/bin:/c/gopath/bin
|
|
go build -o $GOBIN\nomad.exe
|
|
name: Build nomad
|
|
- run:
|
|
command: |
|
|
# Only test docker driver tests for now
|
|
export PATH=$PATH:/c/go/bin:/c/gopath/bin
|
|
gotestsum --format=short-verbose \
|
|
--junitfile $GOTESTSUM_PATH/results.xml \
|
|
github.com/hashicorp/nomad/drivers/docker \
|
|
github.com/hashicorp/nomad/client/lib/fifo \
|
|
github.com/hashicorp/nomad/client/logmon
|
|
name: Run tests with gotestsum
|
|
- store_test_results:
|
|
path: c:\tmp\test-reports
|
|
- store_artifacts:
|
|
path: c:\tmp\test-reports
|
|
environment:
|
|
- GOBIN: c:\gopath\bin
|
|
- GOLANG_VERSION: 1.15.1
|
|
- GOPATH: c:\gopath
|
|
- GOTESTSUM_PATH: c:\tmp\test-reports
|
|
- GOTESTSUM_VERSION: 0.4.2
|
|
- VAULT_VERSION: 1.4.1
|
|
resource_class: windows.medium
|
|
shell: bash --login -eo pipefail
|
|
test-shared-exec:
|
|
machine:
|
|
image: ubuntu-1604:201903-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.15.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_MOD: ''
|
|
- GOTEST_PKGS: ./drivers/shared/executor
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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:
|
|
- v2-deps-{{ checksum "ui/yarn.lock" }}
|
|
- v2-deps-
|
|
- run:
|
|
command: cd ui && yarn install
|
|
name: yarn install
|
|
- save_cache:
|
|
key: v2-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.15.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: mkdir -p ui/dist && make generate-all static-assets
|
|
- 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.15.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_MOD: ''
|
|
- GOTEST_PKGS: ''
|
|
- GOTEST_PKGS_EXCLUDE: ./api|./client|./drivers/docker|./drivers/exec|./drivers/shared/executor|./nomad|./devices|./e2e
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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.15.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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf ~/goinstall/go
|
|
mkdir -p ~/goinstall
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d ~/goinstall
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
name: Install golang
|
|
- run:
|
|
command: source ${BASH_ENV} && make deps
|
|
- run:
|
|
command: brew install protobuf
|
|
- run:
|
|
command: 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.15.1
|
|
- 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
|
|
algolia_index:
|
|
docker:
|
|
- image: node:12
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
if [ "$CIRCLE_REPOSITORY_URL" != "git@github.com:hashicorp/nomad.git" ]; then
|
|
echo "Not Nomad OSS Repo, not indexing Algolia"
|
|
exit 0
|
|
fi
|
|
|
|
cd website/
|
|
npm install
|
|
node scripts/index_search_content.js
|
|
name: Push content to Algolia Index
|
|
test-docker:
|
|
machine:
|
|
image: circleci/classic:201808-01
|
|
working_directory: ~/go/src/github.com/hashicorp/nomad
|
|
environment:
|
|
- GIT_PAGER: cat
|
|
- GOLANG_VERSION: 1.15.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_MOD: ''
|
|
- GOTEST_PKGS: ./drivers/docker
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: amd64
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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.15.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.15.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 integration-test
|
|
- 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.15.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_MOD: ''
|
|
- GOTEST_PKGS: ./client/fingerprint
|
|
- GOTEST_PKGS_EXCLUDE: ''
|
|
- GOTESTARCH: '386'
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
echo installing golang ${GOLANG_VERSION}
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
if [[ "${os}" != "windows" ]]
|
|
then
|
|
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
|
|
else
|
|
rm -rf /usr/local/go
|
|
mkdir -p /usr/local
|
|
curl -SL --fail -o /tmp/go.zip https://dl.google.com/go/go${GOLANG_VERSION}.windows-amd64.zip
|
|
unzip -q -o /tmp/go.zip -d /usr/local
|
|
rm -rf /tmp/go.zip
|
|
fi
|
|
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.8.3/consul_1.8.3_linux_amd64.zip
|
|
sudo unzip -d /usr/local/bin /tmp/consul.zip
|
|
rm -rf /tmp/consul*
|
|
name: Install Consul 1.8.3
|
|
- run:
|
|
command: |
|
|
set -x
|
|
|
|
case "${OSTYPE}" in
|
|
linux*) os="linux" ;;
|
|
darwin*) os="darwin" ;;
|
|
msys*) os="windows" ;;
|
|
*) echo "unknown os: ${OSTYPE}"; exit 1 ;;
|
|
esac
|
|
|
|
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/"1.2.4"/vault_"1.2.4"_"${os}"_amd64.zip
|
|
|
|
if [[ "${os}" != "windows" ]]; then
|
|
sudo unzip -d /usr/local/bin /tmp/vault.zip
|
|
rm -rf /tmp/vault*
|
|
else
|
|
rm -rf c:\Windows\vault.exe
|
|
unzip /tmp/vault.zip -d "/c/Windows"
|
|
rm -rf /tmp/vault*
|
|
fi
|
|
name: Install Vault
|
|
- 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
|
|
|
|
if [ ! -z $GOTEST_MOD ]; then
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad-module
|
|
else
|
|
sudo -E PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" make test-nomad
|
|
fi
|
|
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-e2e:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- stable-website
|
|
- test-ui:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- stable-website
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- test-windows:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-client:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-nomad:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-api:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-devices:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-other:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-docker:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-exec:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-shared-exec:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
- test-32bit:
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- /^.-ui\b.*/
|
|
- /^docs-.*/
|
|
- /^e2e-.*/
|
|
- stable-website
|
|
website:
|
|
jobs:
|
|
- website-docker-image:
|
|
filters:
|
|
branches:
|
|
only:
|
|
- master
|
|
context: static-sites
|
|
- algolia_index:
|
|
filters:
|
|
branches:
|
|
only:
|
|
- stable-website
|
|
context: static-sites
|
|
version: 2
|