From 0b01cc533d25fede680756740e447cc732da5fc9 Mon Sep 17 00:00:00 2001 From: hunterlong Date: Fri, 24 Apr 2020 06:00:08 -0700 Subject: [PATCH] revert github action builds --- .github/workflows/master.yml | 2 +- Dockerfile | 17 +++++------ Makefile | 59 ++++++++---------------------------- 3 files changed, 21 insertions(+), 57 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index ec30d51b..64692e9b 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -268,7 +268,7 @@ jobs: COMMIT: $GITHUB_SHA run: | go env - make build-linux build-linux-arm + make build-linux - name: Upload Linux Builds uses: actions/upload-artifact@v1 diff --git a/Dockerfile b/Dockerfile index 1f2c267d..585592a6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,12 @@ +FROM statping/statping:base AS base + +# Statping main Docker image that contains all required libraries FROM alpine:latest -LABEL maintainer="Hunter Long (https://github.com/hunterlong)" -ARG VERSION -ARG ARCH +RUN apk --no-cache add libgcc libstdc++ ca-certificates curl jq && update-ca-certificates -RUN apk --no-cache add curl jq libsass linux-headers ca-certificates - -RUN curl -L -s https://assets.statping.com/sass -o /usr/local/bin/sass && \ - chmod +x /usr/local/bin/sass - -RUN curl -fsSL https://github.com/statping/statping/releases/download/v$VERSION/statping-linux-$ARCH.tar.gz -o statping.tar.gz && \ - tar -C /usr/local/bin -xzf statping.tar.gz && rm statping.tar.gz +COPY --from=base /go/bin/statping /usr/local/bin/ +COPY --from=base /usr/local/bin/sass /usr/local/bin/ +COPY --from=base /usr/local/share/ca-certificates /usr/local/share/ WORKDIR /app diff --git a/Makefile b/Makefile index 81531aa4..71f1d085 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ PUBLISH_BODY='{ "request": { "branch": "master", "message": "Homebrew update ver 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"] } } }' TEST_DIR=$(GOPATH)/src/github.com/statping/statping PATH:=/usr/local/bin:$(GOPATH)/bin:$(PATH) +OS = freebsd linux openbsd ARCHS = 386 arm amd64 arm64 -ARM_ARCHS = arm arm64 all: clean yarn-install compile docker-base docker-vue build-all @@ -56,7 +56,6 @@ test-deps: go get golang.org/x/tools/cmd/cover go get github.com/mattn/goveralls go get github.com/GeertJohan/go.rice/rice - go install github.com/mattn/go-sqlite3 deps: go get -d -v -t ./... @@ -152,51 +151,19 @@ install-local: build generate: cd source && go generate -#docker-manifest: -# for arch in $(ARCHS);\ -# do \ -# echo "Docker build v${VERSION} for linux-$$arch"; \ -# docker build -t statping/statping:v${VERSION}-$$arch --build-arg VERSION=${VERSION} --build-arg ARCH=$$arch .; \ -# docker push statping/statping:v${VERSION}-$$arch; \ -# done -# docker manifest create statping/statping:v${VERSION} statping/statping:v${VERSION}-amd64 statping/statping:v${VERSION}-386 statping/statping:v${VERSION}-arm statping/statping:v${VERSION}-arm64 -# for arch in $(ARCHS);\ -# do \ -# echo "Docker Manifest v${VERSION} for linux-$$arch"; \ -# docker manifest annotate --os linux --arch $$arch statping/statping:v${VERSION}-$$arch; \ -# done -# docker manifest push statping/statping:v${VERSION} -# docker manifest create statping/statping:latest statping/statping:v${VERSION}-amd64 statping/statping:v${VERSION}-386 statping/statping:v${VERSION}-arm statping/statping:v${VERSION}-arm64 -# for arch in $(ARCHS);\ -# do \ -# echo "Docker Manifest v${VERSION} for linux-$$arch"; \ -# docker manifest annotate --os linux --arch $$arch statping/statping:v${VERSION}-$$arch; \ -# done -# docker manifest push statping/statping:latest - build-linux: mkdir build || true export PWD=`pwd` @for arch in $(ARCHS);\ do \ - echo "Building v${VERSION} for linux-$$arch"; \ - mkdir -p releases/statping-linux-$$arch/; \ - GO111MODULE="on" GOOS=linux GOARCH=$$arch go build -a -tags "osusergo netgo" -ldflags "-X main.VERSION=${VERSION} -linkmode external -extldflags -static" -buildmode=pie -o releases/statping-linux-$$arch/statping ${PWD}/cmd || true; \ - chmod +x releases/statping-linux-$$arch/statping || true; \ - tar -czf releases/statping-linux-$$arch.tar.gz -C releases/statping-linux-$$arch statping || true; \ - done - find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \; - -build-linux-arm: - mkdir build || true - export PWD=`pwd` - @for arch in $(ARM_ARCHS);\ - do \ - echo "Building v${VERSION} for linux-$$arch"; \ - mkdir -p releases/statping-linux-$$arch/; \ - GO111MODULE="on" GOOS=linux GOARCH=$$arch go build -a -ldflags -buildmode=pie -o releases/statping-linux-$$arch/statping ${PWD}/cmd || true; \ - chmod +x releases/statping-linux-$$arch/statping || true; \ - tar -czf releases/statping-linux-$$arch.tar.gz -C releases/statping-linux-$$arch statping || true; \ + for os in $(OS);\ + do \ + echo "Building v$$VERSION for $$os-$$arch"; \ + mkdir -p releases/statping-$$os-$$arch/; \ + GO111MODULE="on" GOOS=$$os GOARCH=$$arch go build -a -ldflags "-X main.VERSION=${VERSION} -X main.COMMIT=$(TRAVIS_COMMIT)" -o releases/statping-$$os-$$arch/statping ${PWD}/cmd || true; \ + chmod +x releases/statping-$$os-$$arch/statping || true; \ + tar -czf releases/statping-$$os-$$arch.tar.gz -C releases/statping-$$os-$$arch statping || true; \ + done \ done find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \; @@ -205,9 +172,9 @@ build-mac: export PWD=`pwd` @for arch in $(ARCHS);\ do \ - echo "Building v${VERSION} for darwin-$$arch"; \ + echo "Building v$$VERSION for darwin-$$arch"; \ mkdir -p releases/statping-darwin-$$arch/; \ - GO111MODULE="on" GOOS=darwin GOARCH=$$arch go build -a -ldflags "-X main.VERSION=${VERSION} -linkmode external -extldflags -static" -buildmode=pie -o releases/statping-darwin-$$arch/statping ${PWD}/cmd || true; \ + GO111MODULE="on" GOOS=darwin GOARCH=$$arch go build -a -ldflags "-X main.VERSION=${VERSION} -X main.COMMIT=$(TRAVIS_COMMIT)" -o releases/statping-darwin-$$arch/statping ${PWD}/cmd || true; \ chmod +x releases/statping-darwin-$$arch/statping || true; \ tar -czf releases/statping-darwin-$$arch.tar.gz -C releases/statping-darwin-$$arch statping || true; \ done @@ -218,9 +185,9 @@ build-win: export PWD=`pwd` @for arch in $(ARCHS);\ do \ - echo "Building v${VERSION} for windows-$$arch"; \ + echo "Building v$$VERSION for windows-$$arch"; \ mkdir -p releases/statping-windows-$$arch/; \ - GO111MODULE="on" GOOS=windows GOARCH=$$arch go build -a -tags "osusergo netgo" -ldflags "-X main.VERSION=${VERSION} -linkmode external -extldflags -static" -buildmode=pie -o releases/statping-windows-$$arch/statping.exe ${PWD}/cmd || true; \ + GO111MODULE="on" GOOS=windows GOARCH=$$arch go build -a -ldflags "-X main.VERSION=${VERSION} -X main.COMMIT=$(TRAVIS_COMMIT)" -o releases/statping-windows-$$arch/statping.exe ${PWD}/cmd || true; \ chmod +x releases/statping-windows-$$arch/statping.exe || true; \ zip -j releases/statping-windows-$$arch.zip releases/statping-windows-$$arch/statping.exe || true; \ done