mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
Merge pull request #1688 from jaffee/automate-release-building-2.8
attempt to build release artifacts in CI (using updated Go version)
This commit is contained in:
commit
d5dc50fffa
4 changed files with 102 additions and 21 deletions
|
|
@ -5,7 +5,7 @@ executors:
|
|||
parameters:
|
||||
version:
|
||||
type: string
|
||||
default: "1.15.5"
|
||||
default: "1.16.7"
|
||||
resource_class:
|
||||
type: string
|
||||
default: medium
|
||||
|
|
@ -84,7 +84,7 @@ jobs:
|
|||
default: medium
|
||||
golang_version:
|
||||
type: string
|
||||
default: "1.15.5"
|
||||
default: "1.16.7"
|
||||
shard_width:
|
||||
type: string
|
||||
default: "20"
|
||||
|
|
@ -132,12 +132,23 @@ jobs:
|
|||
- checkout-plus
|
||||
- attach_workspace:
|
||||
at: .
|
||||
- run: make release
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13 # see https://support.circleci.com/hc/en-us/articles/360050934711
|
||||
- run: echo -n $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
|
||||
- run: make docker-release
|
||||
- store_artifacts:
|
||||
path: build
|
||||
- persist_to_workspace:
|
||||
root: .
|
||||
paths: build
|
||||
publish_release:
|
||||
executor:
|
||||
name: golang
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: .
|
||||
- run: go get github.com/tcnksm/ghr
|
||||
- run: ghr -t ${GITHUB_PERSONAL_ACCESS_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${CIRCLE_TAG} ./build/
|
||||
prerelease-upload:
|
||||
docker:
|
||||
- image: circleci/python:2.7-jessie
|
||||
|
|
@ -152,7 +163,9 @@ jobs:
|
|||
name: golang
|
||||
steps:
|
||||
- checkout-plus
|
||||
- setup_remote_docker
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13 # see https://support.circleci.com/hc/en-us/articles/360050934711
|
||||
- run: echo -n $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
|
||||
- run: make docker
|
||||
- run: docker run pilosa:$(git describe --tags) help
|
||||
dockerhub-upload-unstable:
|
||||
|
|
@ -160,7 +173,9 @@ jobs:
|
|||
name: golang
|
||||
steps:
|
||||
- checkout-plus
|
||||
- setup_remote_docker
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13 # see https://support.circleci.com/hc/en-us/articles/360050934711
|
||||
- run: echo -n $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
|
||||
- run: make docker
|
||||
- run: docker run pilosa:$(git describe --tags) help
|
||||
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
|
|
@ -170,7 +185,9 @@ jobs:
|
|||
name: golang
|
||||
steps:
|
||||
- checkout-plus
|
||||
- setup_remote_docker
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13 # see https://support.circleci.com/hc/en-us/articles/360050934711
|
||||
- run: echo -n $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
|
||||
- run: make docker
|
||||
- run: docker run pilosa:$(git describe --tags) help
|
||||
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
|
|
@ -209,7 +226,7 @@ workflows:
|
|||
- setup
|
||||
matrix:
|
||||
parameters:
|
||||
golang_version: ["1.14.12", "1.15.5"]
|
||||
golang_version: ["1.16.7"]
|
||||
- test:
|
||||
name: << matrix.test_make_target >>
|
||||
resource_class: xlarge
|
||||
|
|
@ -218,7 +235,7 @@ workflows:
|
|||
- setup
|
||||
matrix:
|
||||
parameters:
|
||||
test_make_target: ["test-race", "test-txstore-rbf", "test-txstore-rbf_bolt"]
|
||||
test_make_target: ["test-race"]
|
||||
- test:
|
||||
name: test-shardwidth-22
|
||||
shard_width: "22"
|
||||
|
|
@ -236,7 +253,23 @@ workflows:
|
|||
requires:
|
||||
- linter
|
||||
- check-license-headers
|
||||
- test-golang-1.15.5
|
||||
- test-golang-1.16.7
|
||||
- release:
|
||||
context: molecula
|
||||
requires:
|
||||
- setup
|
||||
filters:
|
||||
tags:
|
||||
only: /^v.*/
|
||||
- publish_release:
|
||||
context: molecula
|
||||
requires:
|
||||
- release
|
||||
filters:
|
||||
tags:
|
||||
only: /^v.*/
|
||||
branches:
|
||||
ignore: /.*/
|
||||
- dockerhub-upload-unstable:
|
||||
context: molecula
|
||||
requires:
|
||||
|
|
|
|||
|
|
@ -1 +1,6 @@
|
|||
lattice
|
||||
lattice/.git
|
||||
lattice/node_modules
|
||||
lattice/build
|
||||
statik/statik.go
|
||||
build
|
||||
|
||||
|
|
|
|||
42
Dockerfile
42
Dockerfile
|
|
@ -1,19 +1,47 @@
|
|||
FROM golang:1.14.10 as builder
|
||||
ARG GO_VERSION=latest
|
||||
|
||||
ARG BUILD_FLAGS
|
||||
#######################
|
||||
### Lattice builder ###
|
||||
#######################
|
||||
|
||||
FROM moleculacorp/nodejs:latest as lattice-builder
|
||||
WORKDIR /lattice
|
||||
|
||||
COPY lattice/package.json ./
|
||||
COPY lattice/yarn.lock ./
|
||||
|
||||
RUN yarn install
|
||||
|
||||
COPY lattice ./
|
||||
RUN yarn build
|
||||
|
||||
######################
|
||||
### Pilosa builder ###
|
||||
######################
|
||||
|
||||
FROM golang:${GO_VERSION} as pilosa-builder
|
||||
ARG MAKE_FLAGS
|
||||
WORKDIR /pilosa
|
||||
|
||||
COPY . pilosa
|
||||
RUN go get github.com/rakyll/statik
|
||||
|
||||
RUN cd pilosa && make install FLAGS="-a -mod=vendor ${BUILD_FLAGS}" ${MAKE_FLAGS}
|
||||
COPY . ./
|
||||
COPY --from=lattice-builder /lattice/build /lattice
|
||||
RUN /go/bin/statik -src=/lattice -dest=/pilosa
|
||||
|
||||
FROM alpine:3.12.1
|
||||
RUN make build FLAGS="-o build/pilosa" ${MAKE_FLAGS}
|
||||
|
||||
LABEL maintainer "dev@pilosa.com"
|
||||
#####################
|
||||
### Pilosa runner ###
|
||||
#####################
|
||||
|
||||
FROM alpine:3.13.2 as runner
|
||||
|
||||
LABEL maintainer "dev@molecula.com"
|
||||
|
||||
RUN apk add --no-cache curl jq
|
||||
|
||||
COPY --from=builder /go/bin/pilosa /pilosa
|
||||
COPY --from=pilosa-builder /pilosa/build/pilosa /
|
||||
|
||||
COPY LICENSE /LICENSE
|
||||
COPY NOTICE /NOTICE
|
||||
|
|
|
|||
23
Makefile
23
Makefile
|
|
@ -12,7 +12,7 @@ BUILD_TIME := $(shell date -u +%FT%T%z)
|
|||
SHARD_WIDTH = 20
|
||||
COMMIT := $(shell git describe --exact-match >/dev/null 2>&1 || git rev-parse --short HEAD)
|
||||
LDFLAGS="-X github.com/pilosa/pilosa/v2.Version=$(VERSION) -X github.com/pilosa/pilosa/v2.BuildTime=$(BUILD_TIME) -X github.com/pilosa/pilosa/v2.Variant=$(VARIANT) -X github.com/pilosa/pilosa/v2.Commit=$(COMMIT) -X github.com/pilosa/pilosa/v2.LatticeCommit=$(LATTICE_COMMIT)"
|
||||
GO_VERSION=1.14.10
|
||||
GO_VERSION=1.16.7
|
||||
RELEASE ?= 0
|
||||
RELEASE_ENABLED = $(subst 0,,$(RELEASE))
|
||||
BUILD_TAGS += $(if $(RELEASE_ENABLED),release)
|
||||
|
|
@ -195,8 +195,10 @@ generate-proto-grpc: require-protoc require-protoc-gen-go
|
|||
generate: generate-protoc generate-statik generate-stringer generate-pql
|
||||
|
||||
# Create Docker image from Dockerfile
|
||||
docker: vendor
|
||||
docker build --build-arg BUILD_FLAGS="${FLAGS}" -t "pilosa:$(VERSION)" .
|
||||
docker: vendor lattice
|
||||
docker build \
|
||||
--build-arg GO_VERSION=$(GO_VERSION) \
|
||||
--tag pilosa:$(VERSION) .
|
||||
@echo Created docker image: pilosa:$(VERSION)
|
||||
|
||||
# Tag and push a Docker image
|
||||
|
|
@ -205,9 +207,22 @@ docker-tag-push: vendor
|
|||
docker push $(DOCKER_TARGET)
|
||||
@echo Pushed docker image: $(DOCKER_TARGET)
|
||||
|
||||
docker-release: check-clean lattice
|
||||
$(MAKE) docker-build GOOS=linux GOARCH=amd64
|
||||
$(MAKE) docker-build GOOS=darwin GOARCH=amd64
|
||||
|
||||
# Compile Pilosa inside Docker container
|
||||
docker-build: vendor
|
||||
docker run --rm -v $(PWD):/go/src/$(CLONE_URL) -w /go/src/$(CLONE_URL) -e GOOS=$(GOOS) -e GOARCH=$(GOARCH) golang:$(GO_VERSION) make build FLAGS="$(FLAGS) -mod=vendor" RELEASE=$(RELEASE)
|
||||
docker build \
|
||||
--build-arg GO_VERSION=$(GO_VERSION) \
|
||||
--build-arg MAKE_FLAGS="GOOS=$(GOOS) GOARCH=$(GOARCH)" \
|
||||
--target pilosa-builder \
|
||||
--tag pilosa:build .
|
||||
docker create --name pilosa-build pilosa:build
|
||||
mkdir -p build/pilosa-$(VERSION_ID)
|
||||
docker cp pilosa-build:/pilosa/build/. ./build/pilosa-$(VERSION_ID)
|
||||
docker rm pilosa-build
|
||||
tar -cvz -C build -f build/pilosa-$(VERSION_ID).tar.gz pilosa-$(VERSION_ID)/
|
||||
|
||||
# Install diagnostic pilosa-keydump tool. Allows viewing the keys in a transaction-engine directory.
|
||||
pilosa-keydump:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue