mirror of https://github.com/statping/statping
commit
fa31ac6bdf
|
@ -1,63 +1,47 @@
|
||||||
name: Dev Release
|
name: Development Build
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- dev
|
- dev
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- dev
|
|
||||||
paths-ignore:
|
|
||||||
- '**.md'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
|
||||||
|
frontend:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.18.2'
|
node-version: 12.18.2
|
||||||
- name: Configure AWS credentials from account
|
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: us-west-2
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Add GOBIN to PATH
|
- name: Set Version
|
||||||
run: |
|
run: |
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Font Awesome authentication
|
|
||||||
env:
|
|
||||||
FONTAWESOME_TOKEN: ${{ secrets.FONTAWESOME_TOKEN }}
|
|
||||||
run: |
|
|
||||||
npm config set "@fortawesome:registry" https://npm.fontawesome.com/
|
|
||||||
npm config set "//npm.fontawesome.com/:_authToken" $FONTAWESOME_TOKEN
|
|
||||||
|
|
||||||
- name: Install Global Dependencies
|
- name: Install Global Dependencies
|
||||||
run: npm install -g yarn sass cross-env
|
run: npm install -g yarn sass cross-env
|
||||||
|
|
||||||
- name: Download Frontend Dependencies
|
- name: Download Frontend Dependencies
|
||||||
if: steps.nodecache.outputs.cache-hit != 'true'
|
|
||||||
working-directory: ./frontend
|
working-directory: ./frontend
|
||||||
run: yarn
|
run: yarn
|
||||||
|
|
||||||
- name: Download Go mods
|
- name: Download Go mods
|
||||||
if: steps.golangcache.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
run: |
|
||||||
go mod download
|
go mod download
|
||||||
go mod verify
|
go mod verify
|
||||||
make test-deps
|
make test-deps
|
||||||
|
|
||||||
- name: Build Frontend Statping
|
- name: Build Frontend Statping
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: make clean compile
|
run: make clean compile
|
||||||
|
|
||||||
- name: Upload Compiled Frontend (rice-box.go)
|
- name: Upload Compiled Frontend (rice-box.go)
|
||||||
|
@ -66,16 +50,130 @@ jobs:
|
||||||
name: static-rice-box
|
name: static-rice-box
|
||||||
path: ./source
|
path: ./source
|
||||||
|
|
||||||
- name: Upload Assets to S3
|
- name: Configure AWS credentials for Asset uploads
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: us-west-2
|
||||||
|
|
||||||
|
- name: Upload Static Assets to S3
|
||||||
run: |
|
run: |
|
||||||
tar -czvf source.tar.gz source/
|
tar -czvf source.tar.gz source/
|
||||||
aws s3 cp source.tar.gz s3://assets.statping.com/
|
aws s3 cp source.tar.gz s3://assets.statping.com/commit/${{ github.sha }}/
|
||||||
rm -rf source.tar.gz
|
rm -rf source.tar.gz
|
||||||
|
|
||||||
test:
|
build:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
platform: [linux]
|
||||||
|
arch: [386, amd64, arm-7, arm-6, arm64]
|
||||||
|
include:
|
||||||
|
- platform: darwin
|
||||||
|
arch: amd64
|
||||||
|
- platform: windows
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Download Compiled Frontend (rice-box.go)
|
||||||
|
uses: actions/download-artifact@v1
|
||||||
|
with:
|
||||||
|
name: static-rice-box
|
||||||
|
path: ./source
|
||||||
|
|
||||||
|
- name: Configure AWS credentials for Asset uploads
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: us-west-2
|
||||||
|
|
||||||
|
- name: Add GOBIN to PATH
|
||||||
|
run: |
|
||||||
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Set Linux Build Flags
|
||||||
|
if: matrix.platform != 'darwin'
|
||||||
|
run: echo ::set-env name=BUILD_FLAGS::'-extldflags -static'
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Build ${{ matrix.platform }}/${{ matrix.arch }}
|
||||||
|
uses: crazy-max/ghaction-xgo@v1
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
|
with:
|
||||||
|
xgo_version: latest
|
||||||
|
go_version: 1.15.x
|
||||||
|
dest: build
|
||||||
|
prefix: statping
|
||||||
|
targets: ${{ matrix.platform }}/${{ matrix.arch }}
|
||||||
|
v: false
|
||||||
|
x: false
|
||||||
|
pkg: cmd
|
||||||
|
buildmode: pie
|
||||||
|
ldflags: -s -w -X main.VERSION=${{ env.VERSION }} -X main.COMMIT=${{ env.COMMIT }} ${{ env.BUILD_FLAGS }}
|
||||||
|
|
||||||
|
- name: Compress Linux Builds
|
||||||
|
if: matrix.platform == 'linux'
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
mv statping-linux-${{ matrix.arch }} statping
|
||||||
|
chmod +x statping
|
||||||
|
tar -czvf statping-linux-${{ matrix.arch }}.tar.gz statping
|
||||||
|
rm -rf statping
|
||||||
|
echo ::set-env name=compressed::statping-linux-${{ matrix.arch }}.tar.gz
|
||||||
|
|
||||||
|
- name: Compress Windows Builds
|
||||||
|
if: matrix.platform == 'windows'
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
mv statping-windows-4.0-${{ matrix.arch }}.exe statping.exe
|
||||||
|
chmod +x statping.exe
|
||||||
|
zip statping-windows-${{ matrix.arch }}.zip statping.exe
|
||||||
|
rm -rf statping.exe
|
||||||
|
echo ::set-env name=compressed::statping-windows-${{ matrix.arch }}.zip
|
||||||
|
|
||||||
|
- name: Compress Darwin Builds
|
||||||
|
if: matrix.platform == 'darwin'
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
mv statping-darwin-10.6-${{ matrix.arch }} statping
|
||||||
|
chmod +x statping
|
||||||
|
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
|
||||||
|
rm -rf statping
|
||||||
|
echo ::set-env name=compressed::statping-darwin-${{ matrix.arch }}.tar.gz
|
||||||
|
|
||||||
|
- name: Upload Compiled Statping Binary
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
with:
|
||||||
|
name: statping-${{ matrix.platform }}-${{ matrix.arch }}
|
||||||
|
path: ./build
|
||||||
|
|
||||||
|
- name: Upload Releases
|
||||||
|
id: upload-assets
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
with:
|
||||||
|
tag_name: dev-v${{ env.VERSION }}
|
||||||
|
draft: true
|
||||||
|
prerelease: true
|
||||||
|
files: build/${{ env.compressed }}
|
||||||
|
|
||||||
|
- name: Upload Compiled Binaries to S3
|
||||||
|
run: |
|
||||||
|
aws s3 cp build/${{ env.compressed }} s3://assets.statping.com/commit/${{ github.sha }}/
|
||||||
|
|
||||||
|
test:
|
||||||
|
needs: frontend
|
||||||
|
runs-on: ubuntu-latest
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:10.8
|
image: postgres:10.8
|
||||||
|
@ -97,13 +195,13 @@ jobs:
|
||||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.18.2'
|
node-version: 12.18.2
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install Global Dependencies
|
- name: Install Global Dependencies
|
||||||
run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
||||||
|
@ -124,6 +222,7 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: |
|
run: |
|
||||||
make build certs
|
make build certs
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
|
@ -172,13 +271,13 @@ jobs:
|
||||||
COVERALLS: ${{ secrets.COVERALLS }}
|
COVERALLS: ${{ secrets.COVERALLS }}
|
||||||
|
|
||||||
test-postman-sqlite:
|
test-postman-sqlite:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
|
@ -196,16 +295,15 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: |
|
run: |
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping $(go env GOPATH)/bin/
|
mv statping $(go env GOPATH)/bin/
|
||||||
|
|
||||||
- name: Run Statping
|
- name: Run Statping
|
||||||
run: |
|
run: |
|
||||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
- name: Postman SQLite Tests
|
- name: Postman SQLite Tests
|
||||||
uses: matt-ball/newman-action@master
|
uses: matt-ball/newman-action@master
|
||||||
with:
|
with:
|
||||||
|
@ -216,7 +314,7 @@ jobs:
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
test-postman-mysql:
|
test-postman-mysql:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
@ -233,7 +331,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
|
@ -251,18 +349,17 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
MJML_APP: ${{ secrets.MJML_APP }}
|
MJML_APP: ${{ secrets.MJML_APP }}
|
||||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||||
run: |
|
run: |
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping $(go env GOPATH)/bin/
|
mv statping $(go env GOPATH)/bin/
|
||||||
|
|
||||||
- name: Run Statping
|
- name: Run Statping
|
||||||
run: |
|
run: |
|
||||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
- name: Postman MySQL Tests
|
- name: Postman MySQL Tests
|
||||||
uses: matt-ball/newman-action@master
|
uses: matt-ball/newman-action@master
|
||||||
with:
|
with:
|
||||||
|
@ -273,7 +370,7 @@ jobs:
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
test-postman-postgres:
|
test-postman-postgres:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
@ -291,7 +388,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
|
@ -314,12 +411,10 @@ jobs:
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping $(go env GOPATH)/bin/
|
mv statping $(go env GOPATH)/bin/
|
||||||
|
|
||||||
- name: Run Statping
|
- name: Run Statping
|
||||||
run: |
|
run: |
|
||||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
- name: Postman Postgres Tests
|
- name: Postman Postgres Tests
|
||||||
uses: matt-ball/newman-action@master
|
uses: matt-ball/newman-action@master
|
||||||
with:
|
with:
|
||||||
|
@ -329,66 +424,8 @@ jobs:
|
||||||
timeoutRequest: 30000
|
timeoutRequest: 30000
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
build-binaries:
|
|
||||||
needs: compile
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: '1.14.2'
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install cross compiling libraries
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y automake autogen build-essential ca-certificates libsqlite3-dev \
|
|
||||||
gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi libc6-dev-armel-cross linux-headers-generic \
|
|
||||||
gcc-5-arm-linux-gnueabihf g++-5-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
|
||||||
gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu libc6-dev-arm64-cross \
|
|
||||||
gcc-5-mips-linux-gnu g++-5-mips-linux-gnu libc6-dev-mips-cross \
|
|
||||||
gcc-5-mipsel-linux-gnu g++-5-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
|
||||||
gcc-5-mips64-linux-gnuabi64 g++-5-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
|
||||||
gcc-5-mips64el-linux-gnuabi64 g++-5-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
|
||||||
gcc-5-multilib g++-5-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
|
||||||
gcc-6-arm-linux-gnueabi g++-6-arm-linux-gnueabi libc6-dev-armel-cross \
|
|
||||||
gcc-6-arm-linux-gnueabihf g++-6-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
|
||||||
gcc-6-aarch64-linux-gnu g++-6-aarch64-linux-gnu libc6-dev-arm64-cross \
|
|
||||||
gcc-6-mips-linux-gnu g++-6-mips-linux-gnu libc6-dev-mips-cross \
|
|
||||||
gcc-6-mipsel-linux-gnu g++-6-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
|
||||||
gcc-6-mips64-linux-gnuabi64 g++-6-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
|
||||||
gcc-6-mips64el-linux-gnuabi64 g++-6-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
|
||||||
gcc-6-multilib gcc-7-multilib g++-6-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
|
||||||
libtool libxml2-dev uuid-dev libssl-dev swig openjdk-8-jdk pkg-config patch \
|
|
||||||
make xz-utils cpio wget zip unzip p7zip git mercurial bzr texinfo help2man cmake --no-install-recommends
|
|
||||||
sudo ln -s /usr/include/asm-generic/ /usr/include/asm
|
|
||||||
|
|
||||||
- name: Setting ENV's
|
|
||||||
run: |
|
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
|
||||||
echo "::add-path::/opt/hostedtoolcache/node/12.18.2/x64/bin"
|
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Download Go mods
|
|
||||||
run: |
|
|
||||||
make test-deps
|
|
||||||
|
|
||||||
- name: Download Compiled Frontend (rice-box.go)
|
|
||||||
uses: actions/download-artifact@v1
|
|
||||||
with:
|
|
||||||
name: static-rice-box
|
|
||||||
path: ./source
|
|
||||||
|
|
||||||
- name: Build Binaries
|
|
||||||
env:
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
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
|
|
||||||
|
|
||||||
docker-release:
|
docker-release:
|
||||||
needs: [test, test-postman-sqlite, test-postman-mysql, test-postman-postgres]
|
needs: [test, build, test-postman-sqlite, test-postman-mysql, test-postman-postgres]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Statping Repo
|
- name: Checkout Statping Repo
|
||||||
|
@ -415,15 +452,30 @@ jobs:
|
||||||
key: buildx-docker-master
|
key: buildx-docker-master
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
buildx-docker-master
|
buildx-docker-master
|
||||||
|
|
||||||
- name: Docker Build :base
|
- name: Docker Build :base
|
||||||
env:
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
COMMIT: ${{ github.sha }}
|
|
||||||
run: make buildx-base
|
run: make buildx-base
|
||||||
|
|
||||||
- name: Docker Build :dev
|
- name: Docker Build :dev
|
||||||
env:
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
COMMIT: ${{ github.sha }}
|
|
||||||
run: make buildx-dev
|
run: make buildx-dev
|
||||||
|
|
||||||
|
sentry-release:
|
||||||
|
needs: [test, test-postman-sqlite, test-postman-postgres, test-postman-mysql]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Statping Repo
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup Sentry CLI
|
||||||
|
uses: mathrix-education/setup-sentry-cli@master
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
url: ${{ secrets.SENTRY_URL }}
|
||||||
|
token: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
organization: statping
|
||||||
|
|
||||||
|
- name: Setting ENV's
|
||||||
|
run: echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Sentry Release
|
||||||
|
run: make sentry-release
|
|
@ -1,4 +1,4 @@
|
||||||
name: Master Release
|
name: Master Build
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
|
@ -7,52 +7,41 @@ on:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
|
||||||
|
frontend:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.18.2'
|
node-version: 12.18.2
|
||||||
- name: Configure AWS credentials
|
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: us-west-2
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Add GOBIN to PATH
|
- name: Set Version
|
||||||
run: |
|
run: |
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Font Awesome authentication
|
|
||||||
env:
|
|
||||||
FONTAWESOME_TOKEN: ${{ secrets.FONTAWESOME_TOKEN }}
|
|
||||||
run: |
|
|
||||||
npm config set "@fortawesome:registry" https://npm.fontawesome.com/
|
|
||||||
npm config set "//npm.fontawesome.com/:_authToken" $FONTAWESOME_TOKEN
|
|
||||||
|
|
||||||
- name: Install Global Dependencies
|
- name: Install Global Dependencies
|
||||||
run: npm install -g yarn sass cross-env
|
run: npm install -g yarn sass cross-env
|
||||||
|
|
||||||
- name: Download Frontend Dependencies
|
- name: Download Frontend Dependencies
|
||||||
if: steps.nodecache.outputs.cache-hit != 'true'
|
|
||||||
working-directory: ./frontend
|
working-directory: ./frontend
|
||||||
run: yarn
|
run: yarn
|
||||||
|
|
||||||
- name: Download Go mods
|
- name: Download Go mods
|
||||||
if: steps.golangcache.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
run: |
|
||||||
go mod download
|
go mod download
|
||||||
go mod verify
|
go mod verify
|
||||||
make test-deps
|
make test-deps
|
||||||
|
|
||||||
- name: Build Frontend Statping
|
- name: Build Frontend Statping
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: make clean compile
|
run: make clean compile
|
||||||
|
|
||||||
- name: Upload Compiled Frontend (rice-box.go)
|
- name: Upload Compiled Frontend (rice-box.go)
|
||||||
|
@ -61,23 +50,130 @@ jobs:
|
||||||
name: static-rice-box
|
name: static-rice-box
|
||||||
path: ./source
|
path: ./source
|
||||||
|
|
||||||
- name: Upload Assets to S3
|
- name: Configure AWS credentials for Asset uploads
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: us-west-2
|
||||||
|
|
||||||
|
- name: Upload Static Assets to S3
|
||||||
run: |
|
run: |
|
||||||
tar -czvf source.tar.gz source/
|
tar -czvf source.tar.gz source/
|
||||||
cp source.tar.gz source-${VERSION}.tar.gz
|
aws s3 cp source.tar.gz s3://assets.statping.com/commit/${{ github.sha }}/
|
||||||
aws s3 cp source.tar.gz s3://assets.statping.com/
|
|
||||||
aws s3 cp source-${VERSION}.tar.gz s3://assets.statping.com/
|
|
||||||
rm -rf source.tar.gz
|
rm -rf source.tar.gz
|
||||||
rm -rf source-${VERSION}.tar.gz
|
|
||||||
aws s3 cp source/dist/css/ s3://assets.statping.com/css/ --recursive
|
build:
|
||||||
aws s3 cp source/dist/js/ s3://assets.statping.com/js/ --recursive
|
needs: frontend
|
||||||
aws s3 cp source/dist/scss/ s3://assets.statping.com/scss/ --recursive
|
runs-on: ubuntu-latest
|
||||||
aws s3 cp install.sh s3://assets.statping.com/
|
strategy:
|
||||||
|
matrix:
|
||||||
|
platform: [linux]
|
||||||
|
arch: [386, amd64, arm-7, arm-6, arm64]
|
||||||
|
include:
|
||||||
|
- platform: darwin
|
||||||
|
arch: amd64
|
||||||
|
- platform: windows
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Download Compiled Frontend (rice-box.go)
|
||||||
|
uses: actions/download-artifact@v1
|
||||||
|
with:
|
||||||
|
name: static-rice-box
|
||||||
|
path: ./source
|
||||||
|
|
||||||
|
- name: Configure AWS credentials for Asset uploads
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: us-west-2
|
||||||
|
|
||||||
|
- name: Add GOBIN to PATH
|
||||||
|
run: |
|
||||||
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Set Linux Build Flags
|
||||||
|
if: matrix.platform != 'darwin'
|
||||||
|
run: echo ::set-env name=BUILD_FLAGS::'-extldflags -static'
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Build ${{ matrix.platform }}/${{ matrix.arch }}
|
||||||
|
uses: crazy-max/ghaction-xgo@v1
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
|
with:
|
||||||
|
xgo_version: latest
|
||||||
|
go_version: 1.15.x
|
||||||
|
dest: build
|
||||||
|
prefix: statping
|
||||||
|
targets: ${{ matrix.platform }}/${{ matrix.arch }}
|
||||||
|
v: false
|
||||||
|
x: false
|
||||||
|
pkg: cmd
|
||||||
|
buildmode: pie
|
||||||
|
ldflags: -s -w -X main.VERSION=${{ env.VERSION }} -X main.COMMIT=${{ env.COMMIT }} ${{ env.BUILD_FLAGS }}
|
||||||
|
|
||||||
|
- name: Compress Linux Builds
|
||||||
|
if: matrix.platform == 'linux'
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
mv statping-linux-${{ matrix.arch }} statping
|
||||||
|
chmod +x statping
|
||||||
|
tar -czvf statping-linux-${{ matrix.arch }}.tar.gz statping
|
||||||
|
rm -rf statping
|
||||||
|
echo ::set-env name=compressed::statping-linux-${{ matrix.arch }}.tar.gz
|
||||||
|
|
||||||
|
- name: Compress Windows Builds
|
||||||
|
if: matrix.platform == 'windows'
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
mv statping-windows-4.0-${{ matrix.arch }}.exe statping.exe
|
||||||
|
chmod +x statping.exe
|
||||||
|
zip statping-windows-${{ matrix.arch }}.zip statping.exe
|
||||||
|
rm -rf statping.exe
|
||||||
|
echo ::set-env name=compressed::statping-windows-${{ matrix.arch }}.zip
|
||||||
|
|
||||||
|
- name: Compress Darwin Builds
|
||||||
|
if: matrix.platform == 'darwin'
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
mv statping-darwin-10.6-${{ matrix.arch }} statping
|
||||||
|
chmod +x statping
|
||||||
|
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
|
||||||
|
rm -rf statping
|
||||||
|
echo ::set-env name=compressed::statping-darwin-${{ matrix.arch }}.tar.gz
|
||||||
|
|
||||||
|
- name: Upload Compiled Statping Binary
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
with:
|
||||||
|
name: statping-${{ matrix.platform }}-${{ matrix.arch }}
|
||||||
|
path: ./build
|
||||||
|
|
||||||
|
- name: Upload Releases
|
||||||
|
id: upload-assets
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
with:
|
||||||
|
tag_name: v${{ env.VERSION }}
|
||||||
|
draft: true
|
||||||
|
prerelease: true
|
||||||
|
files: build/${{ env.compressed }}
|
||||||
|
|
||||||
|
- name: Upload Compiled Binaries to S3
|
||||||
|
run: |
|
||||||
|
aws s3 cp build/${{ env.compressed }} s3://assets.statping.com/commit/${{ github.sha }}/
|
||||||
|
|
||||||
test:
|
test:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:10.8
|
image: postgres:10.8
|
||||||
|
@ -99,13 +195,13 @@ jobs:
|
||||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.18.2'
|
node-version: 12.18.2
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install Global Dependencies
|
- name: Install Global Dependencies
|
||||||
run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
||||||
|
@ -126,6 +222,7 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: |
|
run: |
|
||||||
make build certs
|
make build certs
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
|
@ -137,6 +234,7 @@ jobs:
|
||||||
gotestsum --no-summary=skipped --format dots -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
gotestsum --no-summary=skipped --format dots -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
DB_CONN: sqlite3
|
DB_CONN: sqlite3
|
||||||
STATPING_DIR: ${{ github.workspace }}
|
STATPING_DIR: ${{ github.workspace }}
|
||||||
API_SECRET: demopassword123
|
API_SECRET: demopassword123
|
||||||
|
@ -173,13 +271,13 @@ jobs:
|
||||||
COVERALLS: ${{ secrets.COVERALLS }}
|
COVERALLS: ${{ secrets.COVERALLS }}
|
||||||
|
|
||||||
test-postman-sqlite:
|
test-postman-sqlite:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
|
@ -197,16 +295,15 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: |
|
run: |
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping $(go env GOPATH)/bin/
|
mv statping $(go env GOPATH)/bin/
|
||||||
|
|
||||||
- name: Run Statping
|
- name: Run Statping
|
||||||
run: |
|
run: |
|
||||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
- name: Postman SQLite Tests
|
- name: Postman SQLite Tests
|
||||||
uses: matt-ball/newman-action@master
|
uses: matt-ball/newman-action@master
|
||||||
with:
|
with:
|
||||||
|
@ -217,7 +314,7 @@ jobs:
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
test-postman-mysql:
|
test-postman-mysql:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
@ -234,7 +331,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
|
@ -252,18 +349,17 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
MJML_APP: ${{ secrets.MJML_APP }}
|
MJML_APP: ${{ secrets.MJML_APP }}
|
||||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||||
run: |
|
run: |
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping $(go env GOPATH)/bin/
|
mv statping $(go env GOPATH)/bin/
|
||||||
|
|
||||||
- name: Run Statping
|
- name: Run Statping
|
||||||
run: |
|
run: |
|
||||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
- name: Postman MySQL Tests
|
- name: Postman MySQL Tests
|
||||||
uses: matt-ball/newman-action@master
|
uses: matt-ball/newman-action@master
|
||||||
with:
|
with:
|
||||||
|
@ -274,7 +370,7 @@ jobs:
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
test-postman-postgres:
|
test-postman-postgres:
|
||||||
needs: compile
|
needs: frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
@ -292,7 +388,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
|
@ -310,16 +406,15 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: |
|
run: |
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping $(go env GOPATH)/bin/
|
mv statping $(go env GOPATH)/bin/
|
||||||
|
|
||||||
- name: Run Statping
|
- name: Run Statping
|
||||||
run: |
|
run: |
|
||||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
- name: Postman Postgres Tests
|
- name: Postman Postgres Tests
|
||||||
uses: matt-ball/newman-action@master
|
uses: matt-ball/newman-action@master
|
||||||
with:
|
with:
|
||||||
|
@ -329,113 +424,8 @@ jobs:
|
||||||
timeoutRequest: 30000
|
timeoutRequest: 30000
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
build-binaries:
|
|
||||||
needs: compile
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: '1.14.2'
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install cross compiling libraries
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y automake autogen build-essential ca-certificates libsqlite3-dev \
|
|
||||||
gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi libc6-dev-armel-cross linux-headers-generic \
|
|
||||||
gcc-5-arm-linux-gnueabihf g++-5-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
|
||||||
gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu libc6-dev-arm64-cross \
|
|
||||||
gcc-5-mips-linux-gnu g++-5-mips-linux-gnu libc6-dev-mips-cross \
|
|
||||||
gcc-5-mipsel-linux-gnu g++-5-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
|
||||||
gcc-5-mips64-linux-gnuabi64 g++-5-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
|
||||||
gcc-5-mips64el-linux-gnuabi64 g++-5-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
|
||||||
gcc-5-multilib g++-5-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
|
||||||
gcc-6-arm-linux-gnueabi g++-6-arm-linux-gnueabi libc6-dev-armel-cross \
|
|
||||||
gcc-6-arm-linux-gnueabihf g++-6-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
|
||||||
gcc-6-aarch64-linux-gnu g++-6-aarch64-linux-gnu libc6-dev-arm64-cross \
|
|
||||||
gcc-6-mips-linux-gnu g++-6-mips-linux-gnu libc6-dev-mips-cross \
|
|
||||||
gcc-6-mipsel-linux-gnu g++-6-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
|
||||||
gcc-6-mips64-linux-gnuabi64 g++-6-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
|
||||||
gcc-6-mips64el-linux-gnuabi64 g++-6-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
|
||||||
gcc-6-multilib gcc-7-multilib g++-6-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
|
||||||
libtool libxml2-dev uuid-dev libssl-dev swig openjdk-8-jdk pkg-config patch \
|
|
||||||
make xz-utils cpio wget zip unzip p7zip git mercurial bzr texinfo help2man cmake --no-install-recommends
|
|
||||||
sudo ln -s /usr/include/asm-generic/ /usr/include/asm
|
|
||||||
|
|
||||||
- name: Setting ENV's
|
|
||||||
run: |
|
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
|
||||||
echo "::add-path::/opt/hostedtoolcache/node/12.18.2/x64/bin"
|
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Download Go mods
|
|
||||||
run: |
|
|
||||||
make test-deps
|
|
||||||
|
|
||||||
- name: Download Compiled Frontend (rice-box.go)
|
|
||||||
uses: actions/download-artifact@v1
|
|
||||||
with:
|
|
||||||
name: static-rice-box
|
|
||||||
path: ./source
|
|
||||||
|
|
||||||
- name: Build Binaries
|
|
||||||
env:
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
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
|
|
||||||
|
|
||||||
- name: Upload Builds
|
|
||||||
uses: actions/upload-artifact@v1
|
|
||||||
with:
|
|
||||||
name: builds
|
|
||||||
path: ./build
|
|
||||||
|
|
||||||
upload-release:
|
|
||||||
needs: [test, test-postman-sqlite, test-postman-mysql, test-postman-postgres, build-binaries]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Setting ENV's
|
|
||||||
run: |
|
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
|
||||||
echo "::add-path::/opt/hostedtoolcache/node/12.18.2/x64/bin"
|
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Download Builds
|
|
||||||
uses: actions/download-artifact@v1
|
|
||||||
with:
|
|
||||||
name: builds
|
|
||||||
path: ./builds
|
|
||||||
|
|
||||||
- name: Upload Releases
|
|
||||||
id: upload-assets
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
with:
|
|
||||||
tag_name: v${{ env.VERSION }}
|
|
||||||
draft: false
|
|
||||||
prerelease: true
|
|
||||||
files: |
|
|
||||||
builds/statping-linux-386.tar.gz
|
|
||||||
builds/statping-linux-amd64.tar.gz
|
|
||||||
builds/statping-linux-arm6.tar.gz
|
|
||||||
builds/statping-linux-arm7.tar.gz
|
|
||||||
builds/statping-linux-arm64.tar.gz
|
|
||||||
builds/statping-darwin-amd64.tar.gz
|
|
||||||
builds/statping-darwin-386.tar.gz
|
|
||||||
builds/statping-windows-386.zip
|
|
||||||
builds/statping-windows-amd64.zip
|
|
||||||
builds/statping-windows-arm.zip
|
|
||||||
|
|
||||||
docker-release:
|
docker-release:
|
||||||
needs: upload-release
|
needs: [build, test, test-postman-sqlite, test-postman-postgres, test-postman-mysql]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Statping Repo
|
- name: Checkout Statping Repo
|
||||||
|
@ -462,54 +452,36 @@ jobs:
|
||||||
key: buildx-docker
|
key: buildx-docker
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
buildx-docker
|
buildx-docker
|
||||||
|
|
||||||
- name: Docker Build :base
|
- name: Docker Build :base
|
||||||
env:
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
COMMIT: ${{ github.sha }}
|
|
||||||
run: make buildx-base
|
run: make buildx-base
|
||||||
|
|
||||||
- name: Docker Build :lastest
|
- name: Docker Build :lastest
|
||||||
env:
|
|
||||||
VERSION: ${{ env.VERSION }}
|
|
||||||
COMMIT: ${{ github.sha }}
|
|
||||||
run: make buildx-latest
|
run: make buildx-latest
|
||||||
|
|
||||||
sentry-release:
|
sentry-release:
|
||||||
needs: upload-release
|
needs: [test, test-postman-sqlite, test-postman-postgres, test-postman-mysql]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Statping Repo
|
- name: Checkout Statping Repo
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup Sentry CLI
|
||||||
|
uses: mathrix-education/setup-sentry-cli@master
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
url: ${{ secrets.SENTRY_URL }}
|
||||||
|
token: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
organization: statping
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: echo ::set-env name=VERSION::$(cat version.txt)
|
run: echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Sentry Backend Release
|
- name: Sentry Release
|
||||||
uses: tclindner/sentry-releases-action@v1.0.0
|
run: make sentry-release
|
||||||
env:
|
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
||||||
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
||||||
SENTRY_ORG: statping
|
|
||||||
SENTRY_PROJECT: backend
|
|
||||||
with:
|
|
||||||
tagName: v${{ env.VERSION }}
|
|
||||||
environment: production
|
|
||||||
|
|
||||||
- name: Sentry Frontend Release
|
|
||||||
uses: tclindner/sentry-releases-action@v1.0.0
|
|
||||||
env:
|
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
||||||
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
||||||
SENTRY_ORG: statping
|
|
||||||
SENTRY_PROJECT: frontend
|
|
||||||
with:
|
|
||||||
tagName: v${{ env.VERSION }}
|
|
||||||
environment: production
|
|
||||||
|
|
||||||
homebrew-release:
|
homebrew-release:
|
||||||
needs: upload-release
|
needs: release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Statping Repo
|
- name: Checkout Statping Repo
|
||||||
|
@ -526,7 +498,7 @@ jobs:
|
||||||
run: make publish-homebrew
|
run: make publish-homebrew
|
||||||
|
|
||||||
slack-update:
|
slack-update:
|
||||||
needs: upload-release
|
needs: [release]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Statping Repo
|
- name: Checkout Statping Repo
|
||||||
|
@ -537,7 +509,7 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Slack Notification
|
- name: Slack Notification
|
||||||
uses: rtCamp/action-slack-notify@v2.0.0
|
uses: rtCamp/action-slack-notify@master
|
||||||
env:
|
env:
|
||||||
SLACK_WEBHOOK: ${{ secrets.SLACK_URL }}
|
SLACK_WEBHOOK: ${{ secrets.SLACK_URL }}
|
||||||
SLACK_CHANNEL: dev
|
SLACK_CHANNEL: dev
|
||||||
|
|
|
@ -6,6 +6,13 @@ on:
|
||||||
- '*/*' # matches every branch containing a single '/'
|
- '*/*' # matches every branch containing a single '/'
|
||||||
- '!master' # excludes master
|
- '!master' # excludes master
|
||||||
- '!dev' # excludes dev
|
- '!dev' # excludes dev
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '*' # matches every branch
|
||||||
|
- '*/*' # matches every branch containing a single '/'
|
||||||
|
- '!master' # excludes master
|
||||||
|
- '!dev' # excludes dev
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
compile:
|
||||||
|
@ -25,13 +32,6 @@ jobs:
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Font Awesome authentication
|
|
||||||
env:
|
|
||||||
FONTAWESOME_TOKEN: ${{ secrets.FONTAWESOME_TOKEN }}
|
|
||||||
run: |
|
|
||||||
npm config set "@fortawesome:registry" https://npm.fontawesome.com/
|
|
||||||
npm config set "//npm.fontawesome.com/:_authToken" $FONTAWESOME_TOKEN
|
|
||||||
|
|
||||||
- name: Install Global Dependencies
|
- name: Install Global Dependencies
|
||||||
run: npm install -g yarn sass cross-env
|
run: npm install -g yarn sass cross-env
|
||||||
|
|
||||||
|
@ -83,10 +83,10 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/setup-go@v2
|
- uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: '1.14.2'
|
go-version: 1.15.x
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.18.2'
|
node-version: 12.18.2
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Install Global Dependencies
|
- name: Install Global Dependencies
|
||||||
|
@ -120,6 +120,7 @@ jobs:
|
||||||
SASS=`which sass` gotestsum --no-summary=skipped --format dots -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
SASS=`which sass` gotestsum --no-summary=skipped --format dots -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
DB_CONN: sqlite3
|
DB_CONN: sqlite3
|
||||||
STATPING_DIR: ${{ github.workspace }}
|
STATPING_DIR: ${{ github.workspace }}
|
||||||
API_SECRET: demopassword123
|
API_SECRET: demopassword123
|
||||||
|
@ -152,6 +153,7 @@ jobs:
|
||||||
- name: Install Statping
|
- name: Install Statping
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: ${{ github.sha }}
|
||||||
run: |
|
run: |
|
||||||
make build
|
make build
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
# 0.90.63 (08-17-2020)
|
||||||
|
- Modified build process to use xgo for all arch builds
|
||||||
|
- Modified Statping's Push Notifications server notifier to match with Firebase/gorush params
|
||||||
|
|
||||||
# 0.90.62 (08-07-2020)
|
# 0.90.62 (08-07-2020)
|
||||||
- Added Notification logs
|
- Added Notification logs
|
||||||
- Fixed issues with Notifer After (x) failures for notifications
|
- Fixed issues with Notifer After (x) failures for notifications
|
||||||
|
|
17
Makefile
17
Makefile
|
@ -330,9 +330,12 @@ valid-sign:
|
||||||
gpg --verify statping.asc
|
gpg --verify statping.asc
|
||||||
|
|
||||||
sentry-release:
|
sentry-release:
|
||||||
sentry-cli releases new -p backend -p frontend v${VERSION}
|
sentry-cli releases --org statping --project backend new v${VERSION}
|
||||||
sentry-cli releases set-commits --auto v${VERSION}
|
sentry-cli releases --org statping --project backend set-commits v${VERSION} --auto
|
||||||
sentry-cli releases finalize v${VERSION}
|
sentry-cli releases --org statping --project backend finalize v${VERSION}
|
||||||
|
sentry-cli releases --org statping --project frontend new v${VERSION}
|
||||||
|
sentry-cli releases --org statping --project frontend set-commits v${VERSION} --auto
|
||||||
|
sentry-cli releases --org statping --project frontend finalize v${VERSION}
|
||||||
|
|
||||||
download-bins: clean
|
download-bins: clean
|
||||||
mkdir build || true
|
mkdir build || true
|
||||||
|
@ -376,6 +379,9 @@ certs:
|
||||||
-keyout key.pem \
|
-keyout key.pem \
|
||||||
-subj "/C=US/ST=California/L=Santa Monica/O=Statping/OU=Development/CN=localhost"
|
-subj "/C=US/ST=California/L=Santa Monica/O=Statping/OU=Development/CN=localhost"
|
||||||
|
|
||||||
|
xgo-latest:
|
||||||
|
xgo --go $(GOVERSION) --targets=linux/amd64,linux/386,linux/arm-7,linux/arm-6,linux/arm64,windows/386,windows/amd64,darwin/386,darwin/amd64 --out='statping' --pkg='cmd' --dest=build --tags 'netgo' --ldflags='-X main.VERSION=${VERSION} -X main.COMMIT=$(COMMIT) -linkmode external -extldflags "-static"' .
|
||||||
|
|
||||||
buildx-latest: multiarch
|
buildx-latest: multiarch
|
||||||
docker buildx create --name statping-latest
|
docker buildx create --name statping-latest
|
||||||
docker buildx inspect --builder statping-latest --bootstrap
|
docker buildx inspect --builder statping-latest --bootstrap
|
||||||
|
@ -409,5 +415,10 @@ check:
|
||||||
@echo "yarn: $(shell yarn --version) - $(shell which yarn)" && yarn --version >/dev/null 2>&1 || (echo "ERROR: yarn is required."; exit 1)
|
@echo "yarn: $(shell yarn --version) - $(shell which yarn)" && yarn --version >/dev/null 2>&1 || (echo "ERROR: yarn is required."; exit 1)
|
||||||
@echo "All required programs are installed!"
|
@echo "All required programs are installed!"
|
||||||
|
|
||||||
|
#sentry-release:
|
||||||
|
# sentry-cli releases new -p $SENTRY_PROJECT $VERSION
|
||||||
|
# sentry-cli releases set-commits --auto $VERSION
|
||||||
|
# sentry-cli releases files $VERSION upload-sourcemaps dist
|
||||||
|
|
||||||
.PHONY: all check build certs multiarch install-darwin go-build build-all buildx-base buildx-dev buildx-latest build-alpine test-all test test-api docker frontend up down print_details lite sentry-release snapcraft build-linux build-mac build-win build-all postman
|
.PHONY: all check build certs multiarch install-darwin go-build build-all buildx-base buildx-dev buildx-latest build-alpine test-all test test-api docker frontend up down print_details lite sentry-release snapcraft build-linux build-mac build-win build-all postman
|
||||||
.SILENT: travis_s3_creds
|
.SILENT: travis_s3_creds
|
||||||
|
|
|
@ -25,6 +25,15 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-for="message in messagesInRange" class="bg-light shadow-sm p-3 pr-4 pl-4 col-12 mb-4">
|
||||||
|
<font-awesome-icon icon="calendar" class="mr-3" size="1x"/> {{message.description}}
|
||||||
|
<span class="d-block small text-muted mt-3">
|
||||||
|
Starts at <strong>{{niceDate(message.start_on)}}</strong> till <strong>{{niceDate(message.end_on)}}</strong>
|
||||||
|
({{dur(parseISO(message.start_on), parseISO(message.end_on))}})
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div v-for="(service, index) in services" class="service_block" v-bind:key="index">
|
<div v-for="(service, index) in services" class="service_block" v-bind:key="index">
|
||||||
<ServiceInfo :service=service />
|
<ServiceInfo :service=service />
|
||||||
</div>
|
</div>
|
||||||
|
@ -32,6 +41,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import isAfter from "date-fns/isAfter";
|
||||||
|
import parseISO from "date-fns/parseISO";
|
||||||
|
import isBefore from "date-fns/isBefore";
|
||||||
|
|
||||||
const ServiceInfo = () => import(/* webpackChunkName: "dashboard" */ '@/components/Dashboard/ServiceInfo')
|
const ServiceInfo = () => import(/* webpackChunkName: "dashboard" */ '@/components/Dashboard/ServiceInfo')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -45,6 +58,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
messagesInRange() {
|
||||||
|
return this.$store.getters.globalMessages.filter(m => this.isAfter(this.now(), m.start_on) && this.isBefore(this.now(), m.end_on))
|
||||||
|
},
|
||||||
services() {
|
services() {
|
||||||
return this.$store.getters.services
|
return this.$store.getters.services
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<span class="d-block text-dim float-right small mt-3 mb-1">Failure #{{failure.id}}</span>
|
<span class="d-block text-dim float-right small mt-3 mb-1">Failure #{{failure.id}}</span>
|
||||||
</code>
|
</code>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="loaded" v-for="message in messages" class="bg-light shadow-sm p-3 pr-4 pl-4 col-12 mt-3">
|
<div v-if="loaded" v-for="message in $store.getters.serviceMessages(service.id)" class="bg-light shadow-sm p-3 pr-4 pl-4 col-12 mt-3">
|
||||||
<font-awesome-icon icon="calendar" class="mr-3" size="1x"/> {{message.description}}
|
<font-awesome-icon icon="calendar" class="mr-3" size="1x"/> {{message.description}}
|
||||||
<span class="d-block small text-muted mt-3">
|
<span class="d-block small text-muted mt-3">
|
||||||
Starts at <strong>{{niceDate(message.start_on)}}</strong> till <strong>{{niceDate(message.end_on)}}</strong>
|
Starts at <strong>{{niceDate(message.start_on)}}</strong> till <strong>{{niceDate(message.end_on)}}</strong>
|
||||||
|
@ -44,7 +44,6 @@ name: "ServiceEvents",
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
messages: null,
|
|
||||||
incidents: null,
|
incidents: null,
|
||||||
failure: null,
|
failure: null,
|
||||||
loaded: false,
|
loaded: false,
|
||||||
|
@ -53,6 +52,11 @@ name: "ServiceEvents",
|
||||||
mounted() {
|
mounted() {
|
||||||
this.load()
|
this.load()
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
messages() {
|
||||||
|
return this.$store.getters.serviceMessages(this.service.id)
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async load() {
|
async load() {
|
||||||
this.loaded = false
|
this.loaded = false
|
||||||
|
@ -64,7 +68,7 @@ name: "ServiceEvents",
|
||||||
this.loaded = true
|
this.loaded = true
|
||||||
},
|
},
|
||||||
async getMessages() {
|
async getMessages() {
|
||||||
this.messages = await Api.messages()
|
// this.messages = this.$store.getters.serviceMessages(this.service.id)
|
||||||
},
|
},
|
||||||
async getFailure() {
|
async getFailure() {
|
||||||
const f = await Api.service_failures(this.service.id, null, null, 1)
|
const f = await Api.service_failures(this.service.id, null, null, 1)
|
||||||
|
@ -76,7 +80,3 @@ name: "ServiceEvents",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import Vue from "vue";
|
import Vue from "vue";
|
||||||
const { startOfToday, startOfMonth, lastDayOfMonth, subSeconds, getUnixTime, fromUnixTime, differenceInSeconds, formatDistance, addMonths, isWithinInterval } = require('date-fns')
|
const { startOfToday, startOfMonth, lastDayOfMonth, subSeconds, getUnixTime, fromUnixTime, differenceInSeconds, formatDistance, addMonths, addSeconds, isWithinInterval } = require('date-fns')
|
||||||
import formatDistanceToNow from 'date-fns/formatDistanceToNow'
|
import formatDistanceToNow from 'date-fns/formatDistanceToNow'
|
||||||
import format from 'date-fns/format'
|
import format from 'date-fns/format'
|
||||||
import parseISO from 'date-fns/parseISO'
|
import parseISO from 'date-fns/parseISO'
|
||||||
import addSeconds from 'date-fns/addSeconds'
|
import isBefore from 'date-fns/isBefore'
|
||||||
|
import isAfter from 'date-fns/isAfter'
|
||||||
|
|
||||||
export default Vue.mixin({
|
export default Vue.mixin({
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -19,7 +20,7 @@ export default Vue.mixin({
|
||||||
startToday() {
|
startToday() {
|
||||||
return startOfToday()
|
return startOfToday()
|
||||||
},
|
},
|
||||||
secondsHumanize (val) {
|
secondsHumanize(val) {
|
||||||
return `${val} ${this.$t('second', val)}`
|
return `${val} ${this.$t('second', val)}`
|
||||||
},
|
},
|
||||||
utc(val) {
|
utc(val) {
|
||||||
|
@ -34,10 +35,16 @@ export default Vue.mixin({
|
||||||
nowSubtract(seconds) {
|
nowSubtract(seconds) {
|
||||||
return subSeconds(new Date(), seconds)
|
return subSeconds(new Date(), seconds)
|
||||||
},
|
},
|
||||||
|
isAfter(date, compare) {
|
||||||
|
return isAfter(date, parseISO(compare))
|
||||||
|
},
|
||||||
|
isBefore(date, compare) {
|
||||||
|
return isBefore(date, parseISO(compare))
|
||||||
|
},
|
||||||
dur(t1, t2) {
|
dur(t1, t2) {
|
||||||
return formatDistance(t1, t2)
|
return formatDistance(t1, t2)
|
||||||
},
|
},
|
||||||
format(val, type="EEEE, MMM do h:mma") {
|
format(val, type = "EEEE, MMM do h:mma") {
|
||||||
return format(val, type)
|
return format(val, type)
|
||||||
},
|
},
|
||||||
niceDate(val) {
|
niceDate(val) {
|
||||||
|
@ -84,14 +91,14 @@ export default Vue.mixin({
|
||||||
},
|
},
|
||||||
copy(txt) {
|
copy(txt) {
|
||||||
this.$copyText(txt).then(function (e) {
|
this.$copyText(txt).then(function (e) {
|
||||||
alert('Copied: \n'+txt)
|
alert('Copied: \n' + txt)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
serviceLink(service) {
|
serviceLink(service) {
|
||||||
if (service.permalink) {
|
if (service.permalink) {
|
||||||
service = this.$store.getters.serviceByPermalink(service.permalink)
|
service = this.$store.getters.serviceByPermalink(service.permalink)
|
||||||
}
|
}
|
||||||
if (service===undefined || this.isEmptyObject(service)) {
|
if (service === undefined || this.isEmptyObject(service)) {
|
||||||
return `/service/0`
|
return `/service/0`
|
||||||
}
|
}
|
||||||
let link = service.permalink ? service.permalink : service.id
|
let link = service.permalink ? service.permalink : service.id
|
||||||
|
@ -147,7 +154,7 @@ export default Vue.mixin({
|
||||||
})
|
})
|
||||||
return newSet
|
return newSet
|
||||||
},
|
},
|
||||||
convertToChartData(data = [], multiplier=1, asInt=false) {
|
convertToChartData(data = [], multiplier = 1, asInt = false) {
|
||||||
if (!data) {
|
if (!data) {
|
||||||
return {data: []}
|
return {data: []}
|
||||||
}
|
}
|
||||||
|
@ -178,6 +185,9 @@ export default Vue.mixin({
|
||||||
},
|
},
|
||||||
addMonths(date, amount) {
|
addMonths(date, amount) {
|
||||||
return addMonths(date, amount)
|
return addMonths(date, amount)
|
||||||
|
},
|
||||||
|
addSeconds(date, amount) {
|
||||||
|
return addSeconds(date, amount)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -203,9 +203,9 @@ router.beforeEach((to, from, next) => {
|
||||||
const nearestWithTitle = to.matched.slice().reverse().find(r => r.meta && r.meta.title);
|
const nearestWithTitle = to.matched.slice().reverse().find(r => r.meta && r.meta.title);
|
||||||
const nearestWithMeta = to.matched.slice().reverse().find(r => r.meta && r.meta.metaTags);
|
const nearestWithMeta = to.matched.slice().reverse().find(r => r.meta && r.meta.metaTags);
|
||||||
const previousNearestWithMeta = from.matched.slice().reverse().find(r => r.meta && r.meta.metaTags);
|
const previousNearestWithMeta = from.matched.slice().reverse().find(r => r.meta && r.meta.metaTags);
|
||||||
if(nearestWithTitle) document.title = nearestWithTitle.meta.title;
|
if (nearestWithTitle) document.title = nearestWithTitle.meta.title;
|
||||||
Array.from(document.querySelectorAll('[data-vue-router-controlled]')).map(el => el.parentNode.removeChild(el));
|
Array.from(document.querySelectorAll('[data-vue-router-controlled]')).map(el => el.parentNode.removeChild(el));
|
||||||
if(!nearestWithMeta) return next();
|
if (!nearestWithMeta) return next();
|
||||||
nearestWithMeta.meta.metaTags.map(tagDef => {
|
nearestWithMeta.meta.metaTags.map(tagDef => {
|
||||||
const tag = document.createElement('meta');
|
const tag = document.createElement('meta');
|
||||||
Object.keys(tagDef).forEach(key => {
|
Object.keys(tagDef).forEach(key => {
|
||||||
|
|
|
@ -52,12 +52,12 @@ export default new Vuex.Store({
|
||||||
isAdmin: state => state.admin,
|
isAdmin: state => state.admin,
|
||||||
isUser: state => state.user,
|
isUser: state => state.user,
|
||||||
|
|
||||||
|
globalMessages: state => state.messages.filter(s => !s.service || s.service === 0),
|
||||||
servicesInOrder: state => state.services.sort((a, b) => a.order_id - b.order_id),
|
servicesInOrder: state => state.services.sort((a, b) => a.order_id - b.order_id),
|
||||||
servicesNoGroup: state => state.services.filter(g => g.group_id === 0).sort((a, b) => a.order_id - b.order_id),
|
servicesNoGroup: state => state.services.filter(g => g.group_id === 0).sort((a, b) => a.order_id - b.order_id),
|
||||||
groupsInOrder: state => state.groups.sort((a, b) => a.order_id - b.order_id),
|
groupsInOrder: state => state.groups.sort((a, b) => a.order_id - b.order_id),
|
||||||
groupsClean: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id),
|
groupsClean: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id),
|
||||||
groupsCleanInOrder: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id).sort((a, b) => a.order_id - b.order_id),
|
groupsCleanInOrder: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id).sort((a, b) => a.order_id - b.order_id),
|
||||||
|
|
||||||
serviceCheckins: (state) => (id) => {
|
serviceCheckins: (state) => (id) => {
|
||||||
return state.checkins.filter(c => c.service_id === id)
|
return state.checkins.filter(c => c.service_id === id)
|
||||||
},
|
},
|
||||||
|
@ -97,49 +97,49 @@ export default new Vuex.Store({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
setHasAllData (state, bool) {
|
setHasAllData(state, bool) {
|
||||||
state.hasAllData = bool
|
state.hasAllData = bool
|
||||||
},
|
},
|
||||||
setHasPublicData (state, bool) {
|
setHasPublicData(state, bool) {
|
||||||
state.hasPublicData = bool
|
state.hasPublicData = bool
|
||||||
},
|
},
|
||||||
setCore (state, core) {
|
setCore(state, core) {
|
||||||
state.core = core
|
state.core = core
|
||||||
},
|
},
|
||||||
setToken (state, token) {
|
setToken(state, token) {
|
||||||
state.token = token
|
state.token = token
|
||||||
},
|
},
|
||||||
setService (state, service) {
|
setService(state, service) {
|
||||||
state.service = service
|
state.service = service
|
||||||
},
|
},
|
||||||
setServices (state, services) {
|
setServices(state, services) {
|
||||||
state.services = services
|
state.services = services
|
||||||
},
|
},
|
||||||
setCheckins (state, checkins) {
|
setCheckins(state, checkins) {
|
||||||
state.checkins = checkins
|
state.checkins = checkins
|
||||||
},
|
},
|
||||||
setGroups (state, groups) {
|
setGroups(state, groups) {
|
||||||
state.groups = groups
|
state.groups = groups
|
||||||
},
|
},
|
||||||
setMessages (state, messages) {
|
setMessages(state, messages) {
|
||||||
state.messages = messages
|
state.messages = messages
|
||||||
},
|
},
|
||||||
setUsers (state, users) {
|
setUsers(state, users) {
|
||||||
state.users = users
|
state.users = users
|
||||||
},
|
},
|
||||||
setNotifiers (state, notifiers) {
|
setNotifiers(state, notifiers) {
|
||||||
state.notifiers = notifiers
|
state.notifiers = notifiers
|
||||||
},
|
},
|
||||||
setAdmin (state, admin) {
|
setAdmin(state, admin) {
|
||||||
state.admin = admin
|
state.admin = admin
|
||||||
},
|
},
|
||||||
setLoggedIn (state, loggedIn) {
|
setLoggedIn(state, loggedIn) {
|
||||||
state.loggedIn = loggedIn
|
state.loggedIn = loggedIn
|
||||||
},
|
},
|
||||||
setUser (state, user) {
|
setUser(state, user) {
|
||||||
state.user = user
|
state.user = user
|
||||||
},
|
},
|
||||||
setOAuth (state, oauth) {
|
setOAuth(state, oauth) {
|
||||||
state.oauth = oauth
|
state.oauth = oauth
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -154,7 +154,7 @@ export default new Vuex.Store({
|
||||||
context.commit("setCore", core);
|
context.commit("setCore", core);
|
||||||
context.commit('setAdmin', token)
|
context.commit('setAdmin', token)
|
||||||
context.commit('setCore', core)
|
context.commit('setCore', core)
|
||||||
context.commit('setUser', token!==undefined)
|
context.commit('setUser', token !== undefined)
|
||||||
},
|
},
|
||||||
async loadRequired(context) {
|
async loadRequired(context) {
|
||||||
const groups = await Api.groups()
|
const groups = await Api.groups()
|
||||||
|
|
5
go.mod
5
go.mod
|
@ -9,9 +9,9 @@ require (
|
||||||
github.com/fatih/structs v1.1.0
|
github.com/fatih/structs v1.1.0
|
||||||
github.com/foomo/simplecert v1.7.5
|
github.com/foomo/simplecert v1.7.5
|
||||||
github.com/foomo/tlsconfig v0.0.0-20180418120404-b67861b076c9
|
github.com/foomo/tlsconfig v0.0.0-20180418120404-b67861b076c9
|
||||||
|
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||||
github.com/getsentry/sentry-go v0.5.1
|
github.com/getsentry/sentry-go v0.5.1
|
||||||
github.com/go-mail/mail v2.3.1+incompatible
|
github.com/go-mail/mail v2.3.1+incompatible
|
||||||
github.com/golang/protobuf v1.4.0
|
|
||||||
github.com/gorilla/mux v1.7.4
|
github.com/gorilla/mux v1.7.4
|
||||||
github.com/hako/durafmt v0.0.0-20200605151348-3a43fc422dd9
|
github.com/hako/durafmt v0.0.0-20200605151348-3a43fc422dd9
|
||||||
github.com/jinzhu/gorm v1.9.12
|
github.com/jinzhu/gorm v1.9.12
|
||||||
|
@ -24,14 +24,15 @@ require (
|
||||||
github.com/spf13/cast v1.3.1 // indirect
|
github.com/spf13/cast v1.3.1 // indirect
|
||||||
github.com/spf13/cobra v1.0.0
|
github.com/spf13/cobra v1.0.0
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/spf13/viper v1.6.3
|
github.com/spf13/viper v1.6.3
|
||||||
github.com/stretchr/testify v1.5.1
|
github.com/stretchr/testify v1.5.1
|
||||||
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1
|
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1
|
||||||
github.com/tdewolff/minify/v2 v2.8.0
|
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect
|
golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 // indirect
|
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 // indirect
|
||||||
|
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c // indirect
|
||||||
google.golang.org/grpc v1.28.1
|
google.golang.org/grpc v1.28.1
|
||||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||||
gopkg.in/mail.v2 v2.3.1 // indirect
|
gopkg.in/mail.v2 v2.3.1 // indirect
|
||||||
|
|
8
go.sum
8
go.sum
|
@ -114,7 +114,6 @@ github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
|
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
|
@ -398,7 +397,6 @@ github.com/liquidweb/liquidweb-go v1.6.1/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVL
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs=
|
|
||||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
|
@ -576,12 +574,6 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s
|
||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||||
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1 h1:HGVkRrwDCbmSP6h1CoBDj6l/mhnvsP5JbYaQ4ss0R6o=
|
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1 h1:HGVkRrwDCbmSP6h1CoBDj6l/mhnvsP5JbYaQ4ss0R6o=
|
||||||
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1/go.mod h1:I3xbaE9ud9/TEXzehwkHx86SyJwqeSNsX2X5oV61jIg=
|
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1/go.mod h1:I3xbaE9ud9/TEXzehwkHx86SyJwqeSNsX2X5oV61jIg=
|
||||||
github.com/tdewolff/minify/v2 v2.8.0 h1:t3tOPWkTpKhsgxm3IM9Sy8hE2eIt30Oaa+2havJGGIE=
|
|
||||||
github.com/tdewolff/minify/v2 v2.8.0/go.mod h1:6zN8VLhMfFxNrwHROcboYNo2+huPNu4SV8DPh3PUQ8E=
|
|
||||||
github.com/tdewolff/parse/v2 v2.4.4 h1:uMdbQRtYbKR/msP9CbI7li9wK6pionYiH6s7ipltyGY=
|
|
||||||
github.com/tdewolff/parse/v2 v2.4.4/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
|
|
||||||
github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4=
|
|
||||||
github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
|
||||||
github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7 h1:CpHxIaZzVy26GqJn8ptRyto8fuoYOd1v0fXm9bG3wQ8=
|
github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7 h1:CpHxIaZzVy26GqJn8ptRyto8fuoYOd1v0fXm9bG3wQ8=
|
||||||
github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY=
|
github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
|
|
|
@ -42,13 +42,8 @@ var Mobile = &mobilePush{¬ifications.Notification{
|
||||||
Placeholder: "A list of your Mobile device push notification ID's.",
|
Placeholder: "A list of your Mobile device push notification ID's.",
|
||||||
DbField: "var1",
|
DbField: "var1",
|
||||||
IsHidden: true,
|
IsHidden: true,
|
||||||
}, {
|
},
|
||||||
Type: "number",
|
}},
|
||||||
Title: "Array of device numbers",
|
|
||||||
Placeholder: "1 for iphone 2 for android",
|
|
||||||
DbField: "var2",
|
|
||||||
IsHidden: true,
|
|
||||||
}}},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func dataJson(s services.Service, f failures.Failure) map[string]interface{} {
|
func dataJson(s services.Service, f failures.Failure) map[string]interface{} {
|
||||||
|
@ -120,7 +115,7 @@ func (m *mobilePush) OnTest() (string, error) {
|
||||||
// Send will send message to Statping push notifications endpoint
|
// Send will send message to Statping push notifications endpoint
|
||||||
func (m *mobilePush) Send(pushMessage *pushArray) error {
|
func (m *mobilePush) Send(pushMessage *pushArray) error {
|
||||||
pushMessage.Tokens = []string{m.Var1.String}
|
pushMessage.Tokens = []string{m.Var1.String}
|
||||||
pushMessage.Platform = utils.ToInt(m.Var2)
|
pushMessage.Platform = 2
|
||||||
_, err := pushRequest(pushMessage)
|
_, err := pushRequest(pushMessage)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -138,8 +133,7 @@ func pushRequest(msg *pushArray) ([]byte, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
url := "https://push.statping.com/api/push"
|
body, _, err = utils.HttpRequest("https://push.statping.com/api/push", "POST", "application/json", nil, bytes.NewBuffer(body), time.Duration(20*time.Second), false, nil)
|
||||||
body, _, err = utils.HttpRequest(url, "POST", "application/json", nil, bytes.NewBuffer(body), time.Duration(20*time.Second), false, nil)
|
|
||||||
return body, err
|
return body, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ func SentryInit(v *string, allow bool) {
|
||||||
}
|
}
|
||||||
goEnv := Params.GetString("GO_ENV")
|
goEnv := Params.GetString("GO_ENV")
|
||||||
allowReports := Params.GetBool("ALLOW_REPORTS")
|
allowReports := Params.GetBool("ALLOW_REPORTS")
|
||||||
if allowReports || allow || goEnv == "test" {
|
if allow || goEnv == "test" || allowReports {
|
||||||
if err := sentry.Init(sentry.ClientOptions{
|
if err := sentry.Init(sentry.ClientOptions{
|
||||||
Dsn: errorReporter,
|
Dsn: errorReporter,
|
||||||
Environment: goEnv,
|
Environment: goEnv,
|
||||||
|
@ -60,9 +60,16 @@ func SentryErr(err error) {
|
||||||
sentry.CaptureException(err)
|
sentry.CaptureException(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func sentryTags() map[string]string {
|
||||||
|
val := make(map[string]string)
|
||||||
|
val["database"] = Params.GetString("DB_CONN")
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
func SentryLogEntry(entry *Logger.Entry) {
|
func SentryLogEntry(entry *Logger.Entry) {
|
||||||
e := sentry.NewEvent()
|
e := sentry.NewEvent()
|
||||||
e.Message = entry.Message
|
e.Message = entry.Message
|
||||||
|
e.Tags = sentryTags()
|
||||||
e.Release = Version
|
e.Release = Version
|
||||||
e.Contexts = entry.Data
|
e.Contexts = entry.Data
|
||||||
sentry.CaptureEvent(e)
|
sentry.CaptureEvent(e)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
0.90.62
|
0.90.63
|
||||||
|
|
Loading…
Reference in New Issue