diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..72e5e51 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,58 @@ +workflows: + version: 2 + commit: + jobs: + - release + +jobs: + release: + machine: + image: ubuntu-1604:201903-01 + steps: + - add_ssh_keys: + fingerprints: + - "8f:6b:bb:e6:82:aa:7c:39:df:c2:d1:28:82:1b:f6:54" + - checkout + - run: + name: setup git + command: git branch --set-upstream-to origin $CIRCLE_BRANCH + - run: + name: Identify myself + command: | + git config --global user.email "service+oss@entropy.engineer" && \ + git config --global user.name "Service User" + - run: + name: go fmt + command: | + export WORKPATH=/go/src/github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME + docker run --entrypoint "/usr/local/go/bin/go" -v $PWD:$WORKPATH -w $WORKPATH goreleaser/goreleaser mod tidy + docker run --entrypoint "/usr/local/go/bin/go" -v $PWD:$WORKPATH -w $WORKPATH goreleaser/goreleaser fmt ./... + docker run --entrypoint "/usr/local/go/bin/go" -v $PWD:$WORKPATH -w $WORKPATH goreleaser/goreleaser mod vendor + - run: + name: Tidy up + command: | + git add -A + git commit -m "[ci skip] go mod tidy/gofmt" || true + git push origin HEAD + + - run: + name: Get git version + command: | + docker pull gittools/gitversion:latest-linux-netcoreapp2.1 && \ + docker run --rm -v "$(pwd):/repo" gittools/gitversion:latest-linux-netcoreapp2.1 /repo > out.version + + - run: + name: Tag release + command: | + git tag $(jq -r '.NuGetVersion' out.version) -m "release" || true + git tag v$(jq -r '.NuGetVersion' out.version) -m "release" || true + rm -rf out.version + - run: + name: Go release + command: | + docker run -v /var/run/docker.sock:/var/run/docker.sock -v $PWD:/go/src/github.com/xplorfin/$CIRCLE_PROJECT_NAME -w /go/src/github.com/xplorfin/$CIRCLE_PROJECT_NAME -e CIRCLE_PROJECT_REPONAME -e GITHUB_TOKEN -e DOCKER_USERNAME -e DOCKER_PASSWORD -e DOCKER_REGISTRY goreleaser/goreleaser release --rm-dist + - run: + name: Push tag + command: | + git pull + git push --tags || true \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a725465 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vendor/ \ No newline at end of file diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..f0c8d07 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,101 @@ +project_name: ganalytics +env: + - GO111MODULE=on +before: + hooks: + - go mod tidy +builds: + - env: + - CGO_ENABLED=0 + goos: + - linux + - darwin + - windows + goarch: + - 386 + - amd64 + - arm + - arm64 + ignore: + - goos: darwin + goarch: 386 +checksum: + name_template: '{{ .ProjectName }}_checksums.txt' +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' + - Merge pull request + - Merge branch +dockers: + - image_templates: + - 'docker.pkg.github.com/xplorfin/googleanalytics_exporter/googleanalytics_exporter:{{ .Tag }}' + - 'docker.pkg.github.com/xplorfin/googleanalytics_exporter/googleanalytics_exporter:v{{ .Major }}.{{ .Minor }}' + - 'docker.pkg.github.com/xplorfin/googleanalytics_exporter/googleanalytics_exporter:latest' + dockerfile: Dockerfile + binaries: + - ganalytics + goos: linux + goarch: amd64 + goarm: '' + build_flag_templates: + - "--pull" + - "--label=org.opencontainers.image.created={{.Date}}" + - "--label=org.opencontainers.image.name={{.ProjectName}}" + - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source={{.GitURL}}" + - "--label=com.github.actions.name={{.ProjectName}}" + - "--label=com.github.actions.description=Prometheus Google Annalytics Exporter" + - "--label=com.github.actions.icon=terminal" + - "--label=com.github.actions.color=blue" + - "--label=repository=http://github.com/ganalytics/ganalytics" +archives: + - name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}' + replacements: + darwin: Darwin + linux: Linux + windows: Windows + 386: i386 + amd64: x86_64 + format_overrides: + - goos: windows + format: zip +brews: + - github: + owner: xplorfin + name: homebrewtap-oss + folder: Formula + homepage: https://github.com/xplorfin/googleanalytics_exporter + description: Prometheus Google Analytics Exporter + test: | + system "#{bin}/ganalytics -v" +scoop: + bucket: + owner: xplorfin + name: scoop-bucket-oss + homepage: https://github.com/xplorfin/googleanalytics_exporter + description: Prometheus Google Analytics Exporter + license: MIT +nfpms: + - name_template: '{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}' + homepage: https://ganalytics.com + description: Prometheus Google Analytics Exporter + maintainer: Carlos Alexandro Becker + license: MIT + vendor: GoReleaser + formats: + - deb + - rpm + dependencies: + - git +# TODO: ATTENTION: Currently, the provided docker image does not support the generation of snapcraft packages. @goreleaser +#snapcrafts: +# - name_template: '{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}' +# summary: Deliver Go binaries as fast and easily as possible +# description: Prometheus Google Analytics Exporter +# grade: stable +# confinement: classic +# publish: true \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 657a834..0000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: go -env: - global: - - GO111MODULE=on - - CGO_ENABLED=0 - - GOOS=linux - - REPO=quay.io/paha/ga-prom - - secure: "Y2MaX2kt7++lhRyA+6wmXbiO1Zivci/6Ntl+RC+0aSvndolpbo1Jsi4xgab2Y+MCu43gikSU3QliDGZYsLLU2YeZCzI5gC+e1O3rJyC07QC+cSH4G3wNkoZ3/W/jwCvtpoXvLTTtZHVlGJlrHWrQTlOddiJRnMRESANHvMQ67I9FORtvoCWnLxysw8ICq1L6c+KDDqZAavWHmVEXk5Mj7tT5EKMAwu8akrHWdNgOUZWHNbZexHRoaIRc9usau9AnH+XwazDpEl0NXrL1RQY/6fmCiT+33rquyGD9jggAO4I5ekoB4oMmnhYIHw+ofLCbA51LbQkicSi82Hd+/YJPyCi/vo/gzyF011YGtabrEDKKnTGIc1XluEDQLLCR7Qo96nPBXtm7w1CJQMW7o3bWrCyAXnXkjTTTJIs406uFtSQsHUAF6+lZSsbJfT/UIezi6vJjSK3gBv/7YKljm85mYqtYFd/Eypwx3rR0nToyYcqgO8SZsdPh0bzZ8YJg43r9iKckpOlGSFXhBnybt6lPzJJ8DkNK97zcSNNmUnbRRcJ29TrhSVYOsFwO+ZBqKtSnhuZkjYviFu4vKWTHwW14hnvxXLKjd8/xgTkYis2l652uCyVj2k+xBjSj/ykwhoZqgb5n11WuCMAmO8cyJY+Hp1nE8iCPBMGKDQaeVcWSuAM=" # DOCKER_USER - - secure: "kCZemaLfMm/8ZocOpUhQXcw6KXjQ8qOk+svBVlPK71C4ZO/afFzVSOPtWgIPDoINqoL4ivRHYaQU8MMjrKPu/vgvCGnmbjJ0DJPgK/wjlmDjKMPpMQJV7NYHiWEoiGQl6izMIM0aQfyNBVY94co9fk1otkZn9r5L7CEo18jHdrEu5a7/SrYXE1Qb7Nt7/Tg4XinUmnY5HboSLXOhleFTO4nKWJokunqcei92h1aD4bUazKx2Vr/NWrq5VQ8t3KnEkTHCiwb2aCOirQCgP1OU9hhDuII795xNfV9VXIyatVVVr6dm2qS1XeS2WVHX9zQmnHyNsJ0K6eUHLOI5aNii/ePhxHLIaBhuo7DiWyilYL+fLcp1wddUWDUKbp7Q2SRj4X7BmAacgEHVUjBkZJKKu/ZIHLzxMyf61N25xAprLHCQ4yR2Vuzs1i8xF9guX6RedjWlknBuM2Cv/XLV86+rTffblvbYEUx4bsYJ35VFSP332Ma4FJ3o265oQhkkuIbpkG4r2RiAsioUMlYV/Og75wMBWIXR9d+fdZqWlz19Mql+H9DB/Ov5ElAaidM8Iutrt7EQf5b3gYesM4KyDddSzGqmpv4ZvXqhE+m6YBS2psllhEfLLZjngLYNooOEnXESRrQJblxaz0516hRc67Na9+rp23/m3z96C4Kh2BDfHus=" # DOCKER_PASS - -script: - - go fmt - - go build -ldflags "-s" -a -installsuffix cgo ganalytics.go - -after_success: - - | - if [[ ! -z "$TRAVIS_TAG" ]]; then - docker build --tag "$REPO":latest --tag "$REPO":"$TRAVIS_TAG" . - docker login --username "$DOCKER_USER" --password "$DOCKER_PASS" quay.io - docker push "$REPO":"$TRAVIS_TAG" - fi - -branches: - only: - - master - - /^v\d+\.\d+(\.\d+)?(-\S*)?$/ # versioned tags e.g. v0.1 - diff --git a/Dockerfile b/Dockerfile index 7c92636..c2004cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ LABEL description="Obtains Google Analytics RealTime API metrics, and presents t RUN apk add --update ca-certificates ENV APP_PATH /ga RUN mkdir $APP_PATH -ADD ganalytics $APP_PATH/ +COPY ganalytics $APP_PATH/ WORKDIR $APP_PATH ENTRYPOINT $APP_PATH"/ganalytics" diff --git a/README.md b/README.md index 3465969..5410bab 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ -[![Build Status](https://travis-ci.org/paha/googleanalytics_exporter.svg?branch=master)](https://travis-ci.org/paha/googleanalytics_exporter) -[![Go Report Card](https://goreportcard.com/badge/github.com/paha/googleanalytics_exporter)](https://goreportcard.com/report/github.com/paha/googleanalytics_exporter) -[![Docker Repository on Quay](https://quay.io/repository/paha/ga-prom/status "Docker Repository on Quay")](https://quay.io/repository/paha/ga-prom) +[![CircleCI](https://circleci.com/gh/xplorfin/googleanalytics_exporter.svg?style=svg)](https://circleci.com/gh/xplorfin/googleanalytics_exporter) +[![Go Report Card](https://goreportcard.com/badge/github.com/xplorfin/googleanalytics_exporter)](https://goreportcard.com/report/github.com/xplorfin/googleanalytics_exporter) # Google Real Time Analytics to Prometheus