diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 85645a86..20b83ed2 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -135,6 +135,7 @@ jobs: gotestsum --no-summary=skipped --format dots -- -covermode=count -coverprofile=coverage.out -p=1 ./... env: VERSION: ${{ env.VERSION }} + COMMIT: ${{ github.sha }} DB_CONN: sqlite3 STATPING_DIR: ${{ github.workspace }} API_SECRET: demopassword123 @@ -308,6 +309,7 @@ jobs: - name: Install Statping env: VERSION: ${{ env.VERSION }} + COMMIT: ${{ github.sha }} run: | make build chmod +x statping @@ -380,7 +382,7 @@ jobs: - name: Build Binaries env: VERSION: ${{ env.VERSION }} - COMMIT: $GITHUB_SHA + COMMIT: ${{ github.sha }} MJML_APP: ${{ secrets.MJML_APP }} MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }} run: make build-folders build-linux build-linux-arm build-darwin build-win compress-folders @@ -415,7 +417,13 @@ jobs: buildx-docker-master - name: Docker Build :base + env: + VERSION: ${{ env.VERSION }} + COMMIT: ${{ github.sha }} run: make buildx-base - name: Docker Build :dev + env: + VERSION: ${{ env.VERSION }} + COMMIT: ${{ github.sha }} run: make buildx-dev diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index e29b3e21..52afd36d 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -464,9 +464,15 @@ jobs: buildx-docker - name: Docker Build :base + env: + VERSION: ${{ env.VERSION }} + COMMIT: ${{ github.sha }} run: make buildx-base - name: Docker Build :lastest + env: + VERSION: ${{ env.VERSION }} + COMMIT: ${{ github.sha }} run: make buildx-latest sentry-release: diff --git a/Dockerfile.base b/Dockerfile.base index d90888ce..c1e85af9 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -13,6 +13,7 @@ RUN yarn build && yarn cache clean FROM golang:1.14-alpine AS backend LABEL maintainer="Hunter Long (https://github.com/hunterlong)" ARG VERSION +ARG COMMIT ARG BUILDPLATFORM ARG TARGETARCH RUN apk add --update --no-cache libstdc++ gcc g++ make git autoconf \ @@ -37,7 +38,7 @@ RUN go get github.com/stretchr/testify/assert && \ COPY . . COPY --from=frontend /statping/dist/ ./source/dist/ RUN make clean frontend-copy generate embed -RUN GOOS=linux GOARCH=$TARGETARCH go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o statping --tags "netgo linux" ./cmd +RUN go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" -o statping --tags "netgo linux" ./cmd RUN chmod a+x statping && mv statping /go/bin/statping # /go/bin/statping - statping binary # /root/sassc/bin/sassc - sass binary diff --git a/Makefile b/Makefile index 4f641f11..a08884a0 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,12 @@ VERSION=$(shell cat version.txt) +COMMIT=$(shell git rev-parse HEAD) SIGN_KEY=B76D61FAA6DB759466E83D9964B9C6AAE2D55278 BINARY_NAME=statping GOBUILD=go build -a GOVERSION=1.14.0 NODE_VERSION=12.18.2 XGO=xgo -go $(GOVERSION) --dest=build -BUILDVERSION=-ldflags "-X main.VERSION=${VERSION}" +BUILDVERSION=-ldflags "-X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" TRVIS_SECRET=O3/2KTOV8krv+yZ1EB/7D1RQRe6NdpFUEJNJkMS/ollYqmz3x2mCO7yIgIJKCKguLXZxjM6CxJcjlCrvUwibL+8BBp7xJe4XFIOrjkPvbbVPry4HkFZCf2GfcUK6o4AByQ+RYqsW2F17Fp9KLQ1rL3OT3eLTwCAGKx3tlY8y+an43zkmo5dN64V6sawx26fh6XTfww590ey+ltgQTjf8UPNup2wZmGvMo9Hwvh/bYR/47bR6PlBh6vhlKWyotKf2Fz1Bevbu0zc35pee5YlsrHR+oSF+/nNd/dOij34BhtqQikUR+zQVy9yty8SlmneVwD3yOENvlF+8roeKIXb6P6eZnSMHvelhWpAFTwDXq2N3d/FIgrQtLxsAFTI3nTHvZgs6OoTd6dA0wkhuIGLxaL3FOeztCdxP5J/CQ9GUcTvifh5ArGGwYxRxQU6rTgtebJcNtXFISP9CEUR6rwRtb6ax7h6f1SbjUGAdxt+r2LbEVEk4ZlwHvdJ2DtzJHT5DQtLrqq/CTUgJ8SJFMkrJMp/pPznKhzN4qvd8oQJXygSXX/gz92MvoX0xgpNeLsUdAn+PL9KketfR+QYosBz04d8k05E+aTqGaU7FUCHPTLwlOFvLD8Gbv0zsC/PWgSLXTBlcqLEz5PHwPVHTcVzspKj/IyYimXpCSbvu1YOIjyc= PUBLISH_BODY='{ "request": { "branch": "master", "message": "Homebrew update version v${VERSION}", "config": { "env": { "VERSION": "${VERSION}", "COMMIT": "$(TRAVIS_COMMIT)" } } } }' TRAVIS_BUILD_CMD='{ "request": { "branch": "master", "message": "Compile master for Statping v${VERSION}", "config": { "merge_mode": "replace", "language": "go", "go": 1.14, "install": true, "sudo": "required", "services": ["docker"], "env": { "secure": "${TRVIS_SECRET}" }, "before_deploy": ["git config --local user.name \"hunterlong\"", "git config --local user.email \"info@socialeck.com\"", "git tag v$(VERSION) --force"], "deploy": [{ "provider": "releases", "api_key": "$$GITHUB_TOKEN", "file_glob": true, "file": "build/*", "skip_cleanup": true, "on": { "branch": "master" } }], "before_script": ["rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install stable", "nvm install 10.17.0", "nvm use 10.17.0 --default", "npm install -g sass yarn cross-env", "pip install --user awscli"], "script": ["make release"], "after_success": [], "after_deploy": ["make post-release"] } } }' @@ -17,17 +18,17 @@ ARCHS = 386 arm amd64 arm64 all: build-deps compile install test build test: clean compile - go test -v -p=1 -ldflags="-X main.VERSION=${VERSION}" -coverprofile=coverage.out ./... + go test -v -p=1 -ldflags="-X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" -coverprofile=coverage.out ./... build: clean - go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o statping --tags "netgo linux" ./cmd + go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" -o statping --tags "netgo linux" ./cmd go-build: clean rm -rf source/dist rm -rf source/rice-box.go wget https://assets.statping.com/source.tar.gz tar -xvf source.tar.gz - go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o statping --tags "netgo" ./cmd + go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" -o statping --tags "netgo" ./cmd lint: go fmt ./... @@ -381,19 +382,19 @@ certs: buildx-latest: multiarch docker buildx create --name statping-latest docker buildx inspect --builder statping-latest --bootstrap - docker buildx build --builder statping-latest --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache" --pull --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile -t statping/statping:latest -t statping/statping:v${VERSION} --build-arg=VERSION=${VERSION} . + docker buildx build --builder statping-latest --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache" --pull --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile -t statping/statping:latest -t statping/statping:v${VERSION} --build-arg=VERSION=${VERSION} --build-arg=COMMIT=${COMMIT} . docker buildx rm statping-latest buildx-dev: multiarch docker buildx create --name statping-dev docker buildx inspect --builder statping-dev --bootstrap - docker buildx build --builder statping-dev --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache" --pull --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile -t statping/statping:dev --build-arg=VERSION=${VERSION} . + docker buildx build --builder statping-dev --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache" --pull --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile -t statping/statping:dev --build-arg=VERSION=${VERSION} --build-arg=COMMIT=${COMMIT} . docker buildx rm statping-dev buildx-base: multiarch docker buildx create --name statping-base docker buildx inspect --builder statping-base --bootstrap - docker buildx build --builder statping-base --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache" --pull --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile.base -t statping/statping:base --build-arg=VERSION=${VERSION} . + docker buildx build --builder statping-base --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache" --pull --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile.base -t statping/statping:base --build-arg=VERSION=${VERSION} --build-arg=COMMIT=${COMMIT} . docker buildx rm statping-base multiarch: