Merge pull request #7437 from hashicorp/ci-build-darwin

build darwin binaries in CI
This commit is contained in:
Mahmood Ali 2020-03-23 15:53:06 -04:00 committed by GitHub
commit c7d07aa20c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 201 additions and 40 deletions

168
.circleci/config.yml generated
View File

@ -24,9 +24,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -37,13 +45,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -100,9 +108,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -113,13 +129,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -176,9 +192,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -189,13 +213,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -252,9 +276,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -265,13 +297,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -328,9 +360,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -341,13 +381,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -490,9 +530,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -503,13 +551,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -573,13 +621,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -605,6 +653,51 @@ jobs:
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_JUNITFILE: /tmp/test-reports/results.xml
- NOMAD_SLOW_TEST: 1
- PAGER: cat
test-docker:
machine:
image: circleci/classic:201808-01
@ -625,9 +718,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -638,13 +739,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -761,9 +862,17 @@ jobs:
- run:
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
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
@ -774,13 +883,13 @@ jobs:
name: install protoc
- run:
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/1.6.4/consul_1.6.4_linux_amd64.zip
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: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/1.2.4/vault_1.2.4_linux_amd64.zip
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
@ -833,6 +942,13 @@ workflows:
- /^.-ui\b.*/
- /^docs-.*/
- stable-website
- build-darwin-binaries:
filters:
branches:
ignore:
- /^.-ui\b.*/
- /^docs-.*/
- stable-website
- test-client:
filters:
branches:

View File

@ -6,6 +6,6 @@ steps:
- run:
name: Install Consul << parameters.version >>
command: |
wget -q -O /tmp/consul.zip https://releases.hashicorp.com/consul/<< parameters.version >>/consul_<< parameters.version >>_linux_amd64.zip
curl -SL --fail -o /tmp/consul.zip https://releases.hashicorp.com/consul/<< parameters.version >>/consul_<< parameters.version >>_linux_amd64.zip
sudo unzip -d /usr/local/bin /tmp/consul.zip
rm -rf /tmp/consul*

View File

@ -1,10 +1,23 @@
parameters:
target_directory:
type: string
default: /usr/local
steps:
- run:
name: install golang
command: |
set -x
os="linux"
if [[ "$OSTYPE" == "darwin"* ]]
then
os="darwin"
fi
echo installing golang ${GOLANG_VERSION}
sudo rm -rf /usr/local/go
wget -O /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
sudo rm -rf << parameters.target_directory >>/go
sudo mkdir -p << parameters.target_directory >>
curl -SL --fail -o /tmp/golang.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.${os}-amd64.tar.gz
sudo tar -C << parameters.target_directory >> -xzf /tmp/golang.tar.gz
rm -rf /tmp/golang.tar.gz

View File

@ -6,6 +6,6 @@ steps:
- run:
name: Install Vault << parameters.version >>
command: |
wget -q -O /tmp/vault.zip https://releases.hashicorp.com/vault/<< parameters.version >>/vault_<< parameters.version>>_linux_amd64.zip
curl -SL --fail -o /tmp/vault.zip https://releases.hashicorp.com/vault/<< parameters.version >>/vault_<< parameters.version>>_linux_amd64.zip
sudo unzip -d /usr/local/bin /tmp/vault.zip
rm -rf /tmp/vault*

View File

@ -42,3 +42,12 @@ executors:
machine:
image: *go_machine_recent_image
environment: *machine_env
go-macos:
working_directory: ~/go/src/github.com/hashicorp/nomad
macos:
xcode: 11.3.1
environment:
<<: *common_envs
GOPATH: /Users/distiller/go
GOLANG_VERSION: 1.14

View File

@ -0,0 +1,17 @@
executor: go-macos
steps:
- checkout
- run:
name: configure PATH
command:
echo 'export PATH="${GOPATH}/bin:${HOME}/goinstall/go/bin:$PATH"' >> ${BASH_ENV}
- install-golang:
target_directory: ~/goinstall
- run: source ${BASH_ENV} && make deps
- run: brew install protobuf
- run: sudo -E PATH="$GOPATH/bin:${HOME}/goinstall/go/bin:$PATH" make generate-structs
- run: source ${BASH_ENV} && make pkg/darwin_amd64.zip
- store_artifacts:
path: pkg/darwin_amd64.zip
destination: /builds/nomad_darwin_amd64.zip

View File

@ -14,6 +14,12 @@ jobs:
- /^.-ui\b.*/
- /^docs-.*/
- stable-website
- build-darwin-binaries:
# almost always build binaries as they may be needed
# for e2e tests
filters: *backend_branches_filter
- test-machine:
name: "test-client"
test_packages: "./client/..."

View File

@ -16,7 +16,7 @@ function install_consul() {
fi
fi
wget -q -O /tmp/consul.zip ${DOWNLOAD}
curl -sSL --fail -o /tmp/consul.zip ${DOWNLOAD}
unzip -d /tmp /tmp/consul.zip
mv /tmp/consul /usr/local/bin/consul

View File

@ -16,7 +16,7 @@ function install_vault() {
fi
fi
wget -q -O /tmp/vault.zip ${DOWNLOAD}
curl -sSL --fail -o /tmp/vault.zip ${DOWNLOAD}
unzip -d /tmp /tmp/vault.zip
mv /tmp/vault /usr/local/bin/vault

View File

@ -12,7 +12,7 @@ function install_cni() {
return
fi
wget -q -O /tmp/cni-plugins.tar.gz ${DOWNLOAD}
curl -sSL --fail -o /tmp/cni-plugins.tar.gz ${DOWNLOAD}
tar -xf /tmp/cni-plugins.tar.gz -C ${TARGET_DIR}
touch ${TARGET_DIR}/${VERSION}
}

View File

@ -12,7 +12,7 @@ function install_consul() {
fi
fi
wget -q -O /tmp/consul.zip ${DOWNLOAD}
curl -sSL --fail -o /tmp/consul.zip ${DOWNLOAD}
unzip -d /tmp /tmp/consul.zip
mv /tmp/consul /usr/bin/consul

View File

@ -9,7 +9,7 @@ apt-get install -y \
vim
# Install Chrome for running tests (in headless mode)
wget -qO- - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
curl -sSL -o- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
apt-get update
apt-get install -y google-chrome-stable

View File

@ -10,7 +10,7 @@ function install_go() {
return
fi
wget -q -O /tmp/go.tar.gz ${download}
curl -sSL --fail -o /tmp/go.tar.gz ${download}
tar -C /tmp -xf /tmp/go.tar.gz
sudo mv /tmp/go /usr/local

View File

@ -14,7 +14,7 @@ function install_protoc() {
fi
# Download
wget -q -O /tmp/protoc.zip ${DOWNLOAD}
curl -sSL --fail -o /tmp/protoc.zip ${DOWNLOAD}
# Unzip
unzip /tmp/protoc.zip -d /tmp/protoc3

View File

@ -12,7 +12,7 @@ function install_vault() {
fi
fi
wget -q -O /tmp/vault.zip ${DOWNLOAD}
curl -sSL --fail -o /tmp/vault.zip ${DOWNLOAD}
unzip -d /tmp /tmp/vault.zip
mv /tmp/vault /usr/bin/vault

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Install NVM for simple node.js version management
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
curl -sSL --fail -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
# This enables NVM without a logout/login
export NVM_DIR="/home/vagrant/.nvm"