1cca7abcab
This is extracted from #8094, where I have run into some snags. Since these ESLint fixes aren’t actually connected to the Ember 3.16 update but involve changes to many files, we might as well address them separately. Where possible I fixed the problems but in cases where a fix seemed too involved, I added per-line or -file exceptions.
1464 lines
46 KiB
YAML
Generated
1464 lines
46 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.3
|
|
- 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.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: |
|
|
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.14.3
|
|
- 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.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: |
|
|
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.14.3
|
|
- 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.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: |
|
|
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.14.3
|
|
- 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.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: |
|
|
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.14.3
|
|
- 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.14.3
|
|
- 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.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: |
|
|
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.14.3
|
|
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.14.3
|
|
- 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
|
|
- 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.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: |
|
|
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.14.3
|
|
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: |
|
|
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.14.3
|
|
- 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.3
|
|
- 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.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: |
|
|
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.14.3
|
|
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.3
|
|
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.3
|
|
- 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.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: |
|
|
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-windows:
|
|
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
|