Files
threshold/packages-oss.yml
T
Timothy Messier 06e6ab6c57 build: Fix build to support switch to embed for migrations
With the refactor to the schema package, and the switch to use embed,
the sql files need to be included in CI when compiling the boundary
binary.
2021-10-08 06:50:26 -04:00

106 lines
3.6 KiB
YAML

---
config:
product-repo: https://github.com/hashicorp/boundary.git
release-repo: https://github.com/hashicorp/boundary-release.git
product-id: github.com/hashicorp/boundary
circleci-project-slug: gh/hashicorp/boundary
circleci-host: circleci.com
on-publish: create-github-release
inputs:
defaults:
PRODUCT_NAME: boundary
PRODUCT_VERSION: 0.6.2
BUILD_TAGS: ui
CGO_ENABLED: 0
templates:
BINARY_NAME: '{{.PRODUCT_NAME}}{{if eq .GOOS "windows"}}.exe{{end}}'
PRODUCT_VERSION_MMP: '{{with .PRODUCT_VERSION | strings.SplitN "-" 2}}{{index . 0}}{{end}}'
PRODUCT_VERSION_PRE: '{{with .PRODUCT_VERSION | strings.SplitN "-" 2}}{{if gt (len .) 1}}{{index . 1}}{{else}}{{end}}{{end}}'
packages:
- inputs: { GOOS: darwin, GOARCH: amd64 }
- inputs: { GOOS: freebsd, GOARCH: 386 }
- inputs: { GOOS: freebsd, GOARCH: amd64 }
- inputs: { GOOS: freebsd, GOARCH: arm }
- inputs: { GOOS: linux, GOARCH: 386 }
- inputs: { GOOS: linux, GOARCH: amd64 }
- inputs: { GOOS: linux, GOARCH: arm }
- inputs: { GOOS: linux, GOARCH: arm64 }
- inputs: { GOOS: netbsd, GOARCH: 386 }
- inputs: { GOOS: netbsd, GOARCH: amd64 }
- inputs: { GOOS: openbsd, GOARCH: 386 }
- inputs: { GOOS: openbsd, GOARCH: amd64 }
- inputs: { GOOS: solaris, GOARCH: amd64 }
- inputs: { GOOS: windows, GOARCH: 386 }
- inputs: { GOOS: windows, GOARCH: amd64 }
meta:
templates:
BUILD_JOB_NAME: >-
{{.GOOS}}_{{.GOARCH}}_package
BUNDLE_NAME: "boundary_{{.PRODUCT_VERSION}}"
package-aliases:
- type: local
template: >-
{{.BUNDLE_NAME}}_{{.GOOS}}_{{.GOARCH}}.zip
- type: public-hc-releases
template: >-
boundary/{{.BUNDLE_NAME}}/{{.BUNDLE_NAME}}_{{.GOOS}}_{{.GOARCH}}.zip
# golang:1.17.1-buster
base-image: "docker.mirror.hashicorp.services/golang@sha256:2a0bd53951c1b1746c5adab10e1db1495cc6f2da0a3d21818466265e34a78597"
layers:
- name: base
dockerfile: |
ENV \
GOPATH= \
GOBIN=/usr/local/bin \
GO111MODULE=on \
CGO_ENABLED=0
RUN \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg \
| apt-key add - \
&& curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key \
| apt-key add - \
&& echo "deb https://deb.nodesource.com/node_14.x buster main" | tee /etc/apt/sources.list.d/nodesource.list \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update \
&& apt-get install -yq yarn zip nodejs \
&& rm -rf /var/lib/apt/lists/*
- name: ui
source-include: internal/ui/VERSION
dockerfile: |
RUN \
SHA="$(head -n1 internal/ui/VERSION | cut -d ' ' -f1)" \
&& DIR=internal/ui/.tmp/boundary-ui \
&& mkdir -p "$(dirname "$DIR")" \
&& git clone https://github.com/hashicorp/boundary-ui "$DIR" \
&& ( cd "$DIR" \
&& git fetch origin "$SHA" \
&& git checkout "$SHA" \
&& yarn install \
&& yarn build:ui:admin; )
- name: go-modules
source-include: "go.mod go.sum */go.mod */go.sum"
dockerfile: |
RUN go mod download
- name: copy-source
source-include: "*.go *.up.sql"
build-command: VERSION_PKG_PATH=github.com/hashicorp/boundary/version;
unset GOPATH;
go build -v -tags '{{.BUILD_TAGS}}'
-ldflags "-X $VERSION_PKG_PATH.GitCommit=$PACKAGE_SOURCE_ID
-X $VERSION_PKG_PATH.Version={{.PRODUCT_VERSION_MMP}}
-X $VERSION_PKG_PATH.VersionPrerelease={{.PRODUCT_VERSION_PRE}}"
-o $OUTPUT_DIR/{{.BINARY_NAME}}
./cmd/boundary
&& cd $OUTPUT_DIR && zip $PACKAGE_ZIP_NAME {{.BINARY_NAME}}