mirror of https://github.com/statping/statping
Merge pull request #222 from jemand771/dev-gha-docker
Refactor GitHub actions + fix buildpull/1118/head
commit
006476dbd5
|
@ -1,501 +0,0 @@
|
|||
name: 2. Unstable Build, Test and Deploy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- unstable
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
jobs:
|
||||
|
||||
frontend:
|
||||
runs-on: [self-hosted, linux, aboutcher-hosted, rocky8]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.14.0
|
||||
|
||||
- name: Set Version
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Install Global Dependencies
|
||||
run: npm install -g yarn sass cross-env mjml
|
||||
|
||||
- name: Download Frontend Dependencies
|
||||
working-directory: ./frontend
|
||||
run: yarn
|
||||
|
||||
- name: Download Go mods
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
|
||||
- name: Build Frontend Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
MJML_APP: ${{ secrets.MJML_APP }}
|
||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: make clean generate compile
|
||||
|
||||
- name: Upload Compiled Frontend (rice-box.go)
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
build:
|
||||
needs: frontend
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
platform: [linux]
|
||||
arch: [386, amd64, arm-7, arm-6, arm64]
|
||||
include:
|
||||
- platform: darwin
|
||||
arch: arm64
|
||||
- platform: darwin
|
||||
arch: amd64
|
||||
- platform: windows
|
||||
arch: 386
|
||||
- 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: Add GOBIN to PATH
|
||||
run: |
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set Linux Build Flags
|
||||
if: matrix.platform == 'linux'
|
||||
run: |
|
||||
echo "BUILD_FLAGS=-extldflags -static" >> $GITHUB_ENV
|
||||
echo "XGO_TAGS=netgo osusergo linux sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set MacOS (Darwin) Build Flags
|
||||
if: matrix.platform == 'darwin'
|
||||
run : |
|
||||
echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set Windows Build Flags
|
||||
if: matrix.platform == 'windows'
|
||||
run: |
|
||||
echo "BUILD_FLAGS=-extldflags -static -buildmode=exe" >> $GITHUB_ENV
|
||||
echo "XGO_TAGS=netgo osusergo sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
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.17.x
|
||||
dest: build
|
||||
prefix: statping
|
||||
targets: ${{ matrix.platform }}/${{ matrix.arch }}
|
||||
v: true
|
||||
x: true
|
||||
pkg: cmd
|
||||
buildmode: pie
|
||||
tags: ${{ env.XGO_TAGS }}
|
||||
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 "compressed=statping-linux-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
|
||||
|
||||
- name: Compress Windows Builds
|
||||
if: matrix.platform == 'windows'
|
||||
run: |
|
||||
cd build
|
||||
mv statping-windows-${{ matrix.arch }}.exe statping.exe
|
||||
chmod +x statping.exe
|
||||
zip statping-windows-${{ matrix.arch }}.zip statping.exe
|
||||
rm -rf statping.exe
|
||||
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
|
||||
|
||||
- name: Compress MacOS (Darwin) Builds
|
||||
if: matrix.platform == 'darwin'
|
||||
run: |
|
||||
cd build
|
||||
mv statping-darwin-${{ matrix.arch }} statping
|
||||
chmod +x statping
|
||||
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz *
|
||||
rm -rf statping
|
||||
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
|
||||
|
||||
- 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 }}
|
||||
|
||||
# test:
|
||||
# needs: frontend
|
||||
# runs-on: [self-hosted, linux, aboutcher-hosted]
|
||||
# services:
|
||||
# postgres:
|
||||
# image: postgres:10.8
|
||||
# env:
|
||||
# POSTGRES_USER: root
|
||||
# POSTGRES_PASSWORD: password123
|
||||
# POSTGRES_DB: statping
|
||||
# ports:
|
||||
# - 5432:5432
|
||||
# options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
|
||||
# mysql:
|
||||
# image: mysql:5.7
|
||||
# env:
|
||||
# MYSQL_ROOT_PASSWORD: password123
|
||||
# MYSQL_DATABASE: statping
|
||||
# ports:
|
||||
# - 3306:3306
|
||||
# options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: actions/setup-go@v2
|
||||
# with:
|
||||
# go-version: 1.17.x
|
||||
# - uses: actions/setup-node@v1
|
||||
# with:
|
||||
# node-version: 16.14.0
|
||||
|
||||
# - name: Install Global Dependencies
|
||||
# run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
||||
|
||||
# - name: Setting ENV's
|
||||
# run: |
|
||||
# echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
# echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
# echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
# shell: bash
|
||||
|
||||
# - name: Download Compiled Frontend (rice-box.go)
|
||||
# uses: actions/download-artifact@v1
|
||||
# with:
|
||||
# name: static-rice-box
|
||||
# path: ./source
|
||||
|
||||
# - name: Install Statping
|
||||
# env:
|
||||
# VERSION: ${{ env.VERSION }}
|
||||
# COMMIT: ${{ github.sha }}
|
||||
# run: |
|
||||
# make build certs
|
||||
# chmod +x statping
|
||||
# mv statping $(go env GOPATH)/bin/
|
||||
|
||||
# - name: Go Tests
|
||||
# run: |
|
||||
# go get gotest.tools/gotestsum
|
||||
# gotestsum --no-summary=skipped --format testname -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
||||
# env:
|
||||
# VERSION: ${{ env.VERSION }}
|
||||
# COMMIT: ${{ github.sha }}
|
||||
# DB_CONN: sqlite3
|
||||
# STATPING_DIR: ${{ github.workspace }}
|
||||
# API_SECRET: demopassword123
|
||||
# DISABLE_LOGS: false
|
||||
# ALLOW_REPORTS: true
|
||||
# SAMPLE_DATA: true
|
||||
# COVERALLS: ${{ secrets.COVERALLS }}
|
||||
# DISCORD_URL: ${{ secrets.DISCORD_URL }}
|
||||
# EMAIL_HOST: ${{ secrets.EMAIL_HOST }}
|
||||
# EMAIL_USER: ${{ secrets.EMAIL_USER }}
|
||||
# EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
|
||||
# EMAIL_OUTGOING: ${{ secrets.EMAIL_OUTGOING }}
|
||||
# EMAIL_SEND_TO: ${{ secrets.EMAIL_SEND_TO }}
|
||||
# EMAIL_PORT: ${{ secrets.EMAIL_PORT }}
|
||||
# MOBILE_ID: ${{ secrets.MOBILE_ID }}
|
||||
# MOBILE_NUMBER: ${{ secrets.MOBILE_NUMBER }}
|
||||
# PUSHOVER_TOKEN: ${{ secrets.PUSHOVER_TOKEN }}
|
||||
# PUSHOVER_API: ${{ secrets.PUSHOVER_API }}
|
||||
# SLACK_URL: ${{ secrets.SLACK_URL }}
|
||||
# TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }}
|
||||
# TELEGRAM_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL }}
|
||||
# TWILIO_SID: ${{ secrets.TWILIO_SID }}
|
||||
# TWILIO_SECRET: ${{ secrets.TWILIO_SECRET }}
|
||||
# TWILIO_FROM: ${{ secrets.TWILIO_FROM }}
|
||||
# TWILIO_TO: ${{ secrets.TWILIO_TO }}
|
||||
# TEST_EMAIL: ${{ secrets.TEST_EMAIL }}
|
||||
# GOTIFY_URL: ${{ secrets.GOTIFY_URL }}
|
||||
# GOTIFY_TOKEN: ${{ secrets.GOTIFY_TOKEN }}
|
||||
# SNS_TOKEN: ${{ secrets.SNS_TOKEN }}
|
||||
# SNS_SECRET: ${{ secrets.SNS_SECRET }}
|
||||
# SNS_REGION: ${{ secrets.SNS_REGION }}
|
||||
# SNS_TOPIC: ${{ secrets.SNS_TOPIC }}
|
||||
|
||||
# - name: Coveralls Testing Coverage
|
||||
# run: |
|
||||
# go get github.com/mattn/goveralls
|
||||
# goveralls -coverprofile=coverage.out -repotoken $COVERALLS
|
||||
# env:
|
||||
# COVERALLS: ${{ secrets.COVERALLS }}
|
||||
|
||||
test-postman-sqlite:
|
||||
needs: frontend
|
||||
runs-on: [self-hosted, linux, aboutcher-hosted, centos7]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||
sleep 5
|
||||
- name: Postman SQLite Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
apiKey: ${{ secrets.POSTMAN_API }}
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_env_sqlite.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
test-postman-mysql:
|
||||
needs: frontend
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: password123
|
||||
MYSQL_DATABASE: statping
|
||||
ports:
|
||||
- 3306:3306
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
MJML_APP: ${{ secrets.MJML_APP }}
|
||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||
sleep 5
|
||||
- name: Postman MySQL Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
apiKey: ${{ secrets.POSTMAN_API }}
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_env_mysql.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
test-postman-postgres:
|
||||
needs: frontend
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: password123
|
||||
POSTGRES_DB: statping
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||
sleep 5
|
||||
- name: Postman Postgres Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
apiKey: ${{ secrets.POSTMAN_API }}
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_env_postgres.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
docker-release:
|
||||
needs: [build, test-postman-sqlite, test-postman-mysql, test-postman-postgres]
|
||||
runs-on: [self-hosted, linux, aboutcher-hosted, rocky8]
|
||||
|
||||
steps:
|
||||
- name: Checkout Statping Repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setting ENV's
|
||||
run: echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
id: buildx
|
||||
with:
|
||||
install: true
|
||||
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@v2
|
||||
id: buildx-docker-master
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: buildx-docker-master
|
||||
restore-keys: |
|
||||
buildx-docker-master
|
||||
|
||||
# - name: Docker Login
|
||||
# env:
|
||||
# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
# run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin#
|
||||
|
||||
# - name: Docker Build :base
|
||||
# run: make buildx-base
|
||||
|
||||
- name: Docker Login
|
||||
env:
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
|
||||
|
||||
- name: Docker Build :dev
|
||||
run: make buildx-dev
|
||||
|
||||
|
||||
# sentry-release:
|
||||
# needs: [test, test-postman-sqlite, test-postman-postgres, test-postman-mysql]
|
||||
# runs-on: [self-hosted, linux, aboutcher-hosted]
|
||||
# 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 "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
# shell: bash
|
||||
#
|
||||
# - name: Sentry Release
|
||||
# run: make sentry-release
|
|
@ -1,557 +0,0 @@
|
|||
name: 3. Stable Build, Test and Deploy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- stable
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
|
||||
jobs:
|
||||
|
||||
frontend:
|
||||
runs-on: [self-hosted, linux, aboutcher-hosted, rocky8]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.14.0
|
||||
|
||||
- name: Set Version
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Install Global Dependencies
|
||||
run: npm install -g yarn sass cross-env mjml
|
||||
|
||||
- name: Download Frontend Dependencies
|
||||
working-directory: ./frontend
|
||||
run: yarn
|
||||
|
||||
- name: Download Go mods
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
|
||||
- name: Build Frontend Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
MJML_APP: ${{ secrets.MJML_APP }}
|
||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: make clean generate compile
|
||||
|
||||
- name: Upload Compiled Frontend (rice-box.go)
|
||||
uses: actions/upload-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: Upload Static Assets to S3
|
||||
# run: |
|
||||
# tar -czvf source.tar.gz source/
|
||||
# aws s3 cp source.tar.gz s3://assets.statping.com/commit/${{ github.sha }}/
|
||||
# rm -rf source.tar.gz
|
||||
|
||||
build:
|
||||
needs: [test-postman-sqlite, test-postman-mysql, test-postman-postgres]
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
platform: [linux]
|
||||
arch: [386, amd64, arm-7, arm-6, arm64]
|
||||
include:
|
||||
- platform: darwin
|
||||
arch: arm64
|
||||
- platform: darwin
|
||||
arch: amd64
|
||||
- platform: windows
|
||||
arch: 386
|
||||
- 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 "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set Linux Build Flags
|
||||
if: matrix.platform == 'linux'
|
||||
run: |
|
||||
echo "BUILD_FLAGS=-extldflags -static" >> $GITHUB_ENV
|
||||
echo "XGO_TAGS=netgo osusergo linux sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set MacOS (Darwin) Build Flags
|
||||
if: matrix.platform == 'darwin'
|
||||
run: echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set Windows Build Flags
|
||||
if: matrix.platform == 'windows'
|
||||
run: |
|
||||
echo "BUILD_FLAGS=-extldflags -static -buildmode=exe" >> $GITHUB_ENV
|
||||
echo "XGO_TAGS=netgo osusergo sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
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.17.x
|
||||
dest: build
|
||||
prefix: statping
|
||||
targets: ${{ matrix.platform }}/${{ matrix.arch }}
|
||||
v: false
|
||||
x: false
|
||||
pkg: cmd
|
||||
buildmode: pie
|
||||
tags: ${{ env.XGO_TAGS }}
|
||||
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 "compressed=statping-linux-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
|
||||
|
||||
- name: Compress Windows Builds
|
||||
if: matrix.platform == 'windows'
|
||||
run: |
|
||||
cd build
|
||||
mv statping-windows-${{ matrix.arch }}.exe statping.exe
|
||||
chmod +x statping.exe
|
||||
zip statping-windows-${{ matrix.arch }}.zip statping.exe
|
||||
rm -rf statping.exe
|
||||
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
|
||||
|
||||
- name: Compress MacOS (Darwin) Builds
|
||||
if: matrix.platform == 'darwin'
|
||||
run: |
|
||||
cd build
|
||||
mv statping-darwin-${{ matrix.arch }} statping
|
||||
chmod +x statping
|
||||
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
|
||||
rm -rf statping
|
||||
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
|
||||
|
||||
- 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:
|
||||
# needs: frontend
|
||||
# runs-on: ubuntu-latest
|
||||
# services:
|
||||
# postgres:
|
||||
# image: postgres:10.8
|
||||
# env:
|
||||
# POSTGRES_USER: root
|
||||
# POSTGRES_PASSWORD: password123
|
||||
# POSTGRES_DB: statping
|
||||
# ports:
|
||||
# - 5432:5432
|
||||
# options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
#
|
||||
# mysql:
|
||||
# image: mysql:5.7
|
||||
# env:
|
||||
# MYSQL_ROOT_PASSWORD: password123
|
||||
# MYSQL_DATABASE: statping
|
||||
# ports:
|
||||
# - 3306:3306
|
||||
# options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: actions/setup-go@v2
|
||||
# with:
|
||||
# go-version: 1.17.x
|
||||
# - uses: actions/setup-node@v1
|
||||
# with:
|
||||
# node-version: 16.14.0
|
||||
#
|
||||
# - name: Install Global Dependencies
|
||||
# run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
||||
#
|
||||
# - name: Setting ENV's
|
||||
# run: |
|
||||
# echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
# echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
# echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
# shell: bash
|
||||
#
|
||||
# - name: Download Compiled Frontend (rice-box.go)
|
||||
# uses: actions/download-artifact@v1
|
||||
# with:
|
||||
# name: static-rice-box
|
||||
# path: ./source
|
||||
#
|
||||
# - name: Install Statping
|
||||
# env:
|
||||
# VERSION: ${{ env.VERSION }}
|
||||
# COMMIT: ${{ github.sha }}
|
||||
# run: |
|
||||
# make build certs
|
||||
# chmod +x statping
|
||||
# mv statping $(go env GOPATH)/bin/
|
||||
#
|
||||
# - name: Go Tests
|
||||
# run: |
|
||||
# go get gotest.tools/gotestsum
|
||||
# gotestsum --no-summary=skipped --format testname -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
||||
# env:
|
||||
# VERSION: ${{ env.VERSION }}
|
||||
# COMMIT: ${{ github.sha }}
|
||||
# DB_CONN: sqlite3
|
||||
# STATPING_DIR: ${{ github.workspace }}
|
||||
# API_SECRET: demopassword123
|
||||
# DISABLE_LOGS: false
|
||||
# ALLOW_REPORTS: true
|
||||
# SAMPLE_DATA: true
|
||||
# COVERALLS: ${{ secrets.COVERALLS }}
|
||||
# DISCORD_URL: ${{ secrets.DISCORD_URL }}
|
||||
# EMAIL_HOST: ${{ secrets.EMAIL_HOST }}
|
||||
# EMAIL_USER: ${{ secrets.EMAIL_USER }}
|
||||
# EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
|
||||
# EMAIL_OUTGOING: ${{ secrets.EMAIL_OUTGOING }}
|
||||
# EMAIL_SEND_TO: ${{ secrets.EMAIL_SEND_TO }}
|
||||
# EMAIL_PORT: ${{ secrets.EMAIL_PORT }}
|
||||
# MOBILE_ID: ${{ secrets.MOBILE_ID }}
|
||||
# MOBILE_NUMBER: ${{ secrets.MOBILE_NUMBER }}
|
||||
# PUSHOVER_TOKEN: ${{ secrets.PUSHOVER_TOKEN }}
|
||||
# PUSHOVER_API: ${{ secrets.PUSHOVER_API }}
|
||||
# SLACK_URL: ${{ secrets.SLACK_URL }}
|
||||
# TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }}
|
||||
# TELEGRAM_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL }}
|
||||
# TWILIO_SID: ${{ secrets.TWILIO_SID }}
|
||||
# TWILIO_SECRET: ${{ secrets.TWILIO_SECRET }}
|
||||
# TWILIO_FROM: ${{ secrets.TWILIO_FROM }}
|
||||
# TWILIO_TO: ${{ secrets.TWILIO_TO }}
|
||||
# TEST_EMAIL: ${{ secrets.TEST_EMAIL }}
|
||||
# GOTIFY_URL: ${{ secrets.GOTIFY_URL }}
|
||||
# GOTIFY_TOKEN: ${{ secrets.GOTIFY_TOKEN }}
|
||||
# SNS_TOKEN: ${{ secrets.SNS_TOKEN }}
|
||||
# SNS_SECRET: ${{ secrets.SNS_SECRET }}
|
||||
# SNS_REGION: ${{ secrets.SNS_REGION }}
|
||||
# SNS_TOPIC: ${{ secrets.SNS_TOPIC }}
|
||||
#
|
||||
# - name: Coveralls Testing Coverage
|
||||
# run: |
|
||||
# go get github.com/mattn/goveralls
|
||||
# goveralls -coverprofile=coverage.out -repotoken $COVERALLS
|
||||
# env:
|
||||
# COVERALLS: ${{ secrets.COVERALLS }}
|
||||
|
||||
test-postman-sqlite:
|
||||
needs: frontend
|
||||
runs-on: [self-hosted, linux, aboutcher-hosted, centos7]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||
sleep 5
|
||||
- name: Postman SQLite Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
apiKey: ${{ secrets.POSTMAN_API }}
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_env_sqlite.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
test-postman-mysql:
|
||||
needs: frontend
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: password123
|
||||
MYSQL_DATABASE: statping
|
||||
ports:
|
||||
- 3306:3306
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
MJML_APP: ${{ secrets.MJML_APP }}
|
||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||
sleep 5
|
||||
- name: Postman MySQL Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
apiKey: ${{ secrets.POSTMAN_API }}
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_env_mysql.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
test-postman-postgres:
|
||||
needs: frontend
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: password123
|
||||
POSTGRES_DB: statping
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8585 > /dev/null &
|
||||
sleep 5
|
||||
- name: Postman Postgres Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
apiKey: ${{ secrets.POSTMAN_API }}
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_env_postgres.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
docker-release:
|
||||
needs: build
|
||||
runs-on: [self-hosted, linux, aboutcher-hosted, rocky8]
|
||||
steps:
|
||||
- name: Checkout Statping Repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setting ENV's
|
||||
run: echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
id: buildx
|
||||
with:
|
||||
install: true
|
||||
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@v2
|
||||
id: buildx-docker
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: buildx-docker
|
||||
restore-keys: |
|
||||
buildx-docker
|
||||
|
||||
# - name: Docker Login
|
||||
# env:
|
||||
# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
# run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
|
||||
#
|
||||
# - name: Docker Build :base
|
||||
# run: make buildx-base
|
||||
|
||||
- name: Docker Login
|
||||
env:
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
|
||||
|
||||
- name: Docker Build :lastest
|
||||
run: make buildx-latest
|
||||
|
||||
# sentry-release:
|
||||
# needs: docker-release
|
||||
# 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 "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
# shell: bash
|
||||
#
|
||||
# - name: Sentry Release
|
||||
# run: make sentry-release
|
||||
|
||||
# homebrew-release:
|
||||
# needs: docker-release
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: Checkout Statping Repo
|
||||
# uses: actions/checkout@v2
|
||||
#
|
||||
# - name: Setting ENV's
|
||||
# run: echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
# shell: bash
|
||||
#
|
||||
# - name: Update Homebrew Package
|
||||
# env:
|
||||
# VERSION: ${{ env.VERSION }}
|
||||
# TRAVIS_API: ${{ secrets.TRAVIS_API }}
|
||||
# run: make publish-homebrew
|
||||
#
|
||||
# slack-update:
|
||||
# needs: docker-release
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: Checkout Statping Repo
|
||||
# uses: actions/checkout@v2
|
||||
#
|
||||
# - name: Setting ENV's
|
||||
# run: echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
# shell: bash
|
||||
#
|
||||
# - name: Slack Notification
|
||||
# uses: rtCamp/action-slack-notify@master
|
||||
# env:
|
||||
# SLACK_WEBHOOK: ${{ secrets.SLACK_URL }}
|
||||
# SLACK_CHANNEL: dev
|
||||
# SLACK_USERNAME: StatpingDev
|
|
@ -1,53 +1,97 @@
|
|||
name: 1. Development Build and Testing
|
||||
name: Statping build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- "**.md"
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- "**.md"
|
||||
|
||||
jobs:
|
||||
|
||||
data:
|
||||
# this job collects general variables and inputs for later use.
|
||||
# not all of them might be needed but having them in a central place is more helpful than 100% efficiency.
|
||||
# also, the name is intentionally short to make later references shorter.
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
is_release: ${{ steps.statping-versions.outputs.is_release }}
|
||||
is_prerelease: ${{ steps.statping-versions.outputs.is_prerelease }}
|
||||
# this will be v1.2.3 for on-tag builds and v1.2.3-numberofcommits-sha for off-tag builds
|
||||
version: ${{ steps.statping-versions.outputs.version }}
|
||||
go_version: ${{ steps.tool-versions.outputs.go_version }}
|
||||
node_version: ${{ steps.tool-versions.outputs.node_version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
# check on https://github.com/actions/checkout/pull/579 occasionally if actions/checkout can do this natively yet
|
||||
fetch-depth: 0
|
||||
- name: get statping version information
|
||||
id: statping-versions
|
||||
run: |
|
||||
STABLE_TAG=$(git describe --tags --exclude '*-*')
|
||||
BETA_TAG=$(git describe --tags --match '*-*')
|
||||
echo "stable_tag=$STABLE_TAG" >> $GITHUB_OUTPUT
|
||||
echo "beta_tag=$BETA_TAG" >> $GITHUB_OUTPUT
|
||||
if [ "${{ github.ref }}" = "refs/tags/$STABLE_TAG" ]; then
|
||||
echo "is_release=true" >> $GITHUB_OUTPUT
|
||||
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
||||
echo "version=$STABLE_TAG" >> $GITHUB_OUTPUT
|
||||
elif [ "${{ github.ref }}" = "refs/tags/$BETA_TAG" ]; then
|
||||
echo "is_release=true" >> $GITHUB_OUTPUT
|
||||
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
||||
echo "version=$BETA_TAG" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "is_release=false" >> $GITHUB_OUTPUT
|
||||
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
||||
echo "version=$STABLE_TAG" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
shell: bash
|
||||
- name: get go/node version information
|
||||
id: tool-versions
|
||||
run: |
|
||||
echo "go_version=1.20.x" >> $GITHUB_OUTPUT
|
||||
echo "node_version=16.14.0" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
- name: show data results
|
||||
run: |
|
||||
echo == tools versions ==
|
||||
echo go_version: ${{ steps.tool-versions.outputs.go_version }}
|
||||
echo node_version: ${{ steps.tool-versions.outputs.node_version }}
|
||||
echo == matched tags ==
|
||||
echo stable_tag: ${{ steps.versions.outputs.stable_tag }}
|
||||
echo beta_tag: ${{ steps.versions.outputs.beta_tag }}
|
||||
echo == release information ==
|
||||
echo is_release: ${{ steps.versions.outputs.is_release }}
|
||||
echo is_prerelease: ${{ steps.versions.outputs.is_prerelease }}
|
||||
echo == statping version ==
|
||||
echo version: ${{ steps.versions.outputs.version }}
|
||||
frontend:
|
||||
runs-on: ubuntu-latest
|
||||
needs: data
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
go-version: ${{ needs.data.outputs.go_version }}
|
||||
- name: Install rice
|
||||
run: go install github.com/GeertJohan/go.rice/rice@latest
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.14.0
|
||||
|
||||
- name: Set Version
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Install Global Dependencies
|
||||
run: npm install -g yarn sass cross-env mjml
|
||||
|
||||
node-version: ${{ needs.data.outputs.node_version }}
|
||||
- name: Download Frontend Dependencies
|
||||
working-directory: ./frontend
|
||||
run: yarn
|
||||
|
||||
- name: Download Go mods
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
|
||||
- name: Build Frontend Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
MJML_APP: ${{ secrets.MJML_APP }}
|
||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: make clean generate compile
|
||||
|
||||
working-directory: ./frontend
|
||||
run: yarn build
|
||||
- name: Copy built frontend
|
||||
run: |
|
||||
cp -r frontend/dist source/
|
||||
cp -r frontend/src/assets/scss source/dist/
|
||||
cp frontend/public/robots.txt source/dist/
|
||||
- name: Build rice-box.go
|
||||
run: rice embed-go
|
||||
working-directory: source
|
||||
- name: Upload Compiled Frontend (rice-box.go)
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
|
@ -55,21 +99,22 @@ jobs:
|
|||
path: ./source
|
||||
|
||||
build:
|
||||
needs: frontend
|
||||
needs: [ data, frontend ]
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
platform: [linux]
|
||||
arch: [386, amd64, arm-7, arm-6, arm64]
|
||||
platform: [ linux ]
|
||||
arch: [ 386, amd64, arm-7, arm-6, arm64 ]
|
||||
include:
|
||||
# TODO darwin/386 is broken, ignore for now
|
||||
# - platform: darwin
|
||||
# arch: 386
|
||||
- platform: darwin
|
||||
arch: arm64
|
||||
- platform: darwin
|
||||
arch: amd64
|
||||
- platform: windows
|
||||
arch: amd64
|
||||
- platform: windows
|
||||
arch: 386
|
||||
- platform: windows
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
@ -80,11 +125,6 @@ jobs:
|
|||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Add GOBIN to PATH
|
||||
run: |
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set Linux Build Flags
|
||||
if: matrix.platform == 'linux'
|
||||
run: |
|
||||
|
@ -92,9 +132,9 @@ jobs:
|
|||
echo "XGO_TAGS=netgo osusergo linux sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Set MacOS (Darwin) Build Flags
|
||||
- name: Set Darwin Build Flags
|
||||
if: matrix.platform == 'darwin'
|
||||
run : |
|
||||
run: |
|
||||
echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
|
@ -106,22 +146,22 @@ jobs:
|
|||
shell: bash
|
||||
|
||||
- name: Build ${{ matrix.platform }}/${{ matrix.arch }}
|
||||
uses: crazy-max/ghaction-xgo@v1
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
uses: crazy-max/ghaction-xgo@v2
|
||||
with:
|
||||
xgo_version: latest
|
||||
go_version: 1.17.x
|
||||
go_version: ${{ needs.data.outputs.go_version }}
|
||||
dest: build
|
||||
prefix: statping
|
||||
targets: ${{ matrix.platform }}/${{ matrix.arch }}
|
||||
# v and x enable additional debug output
|
||||
v: true
|
||||
x: true
|
||||
pkg: cmd
|
||||
buildmode: pie
|
||||
tags: ${{ env.XGO_TAGS }}
|
||||
ldflags: -s -w -X main.VERSION=${{ env.VERSION }} -X main.COMMIT=${{ env.COMMIT }} ${{ env.BUILD_FLAGS }}
|
||||
ldflags: -s -w -X main.VERSION=${{ needs.data.outputs.version }} -X main.COMMIT=${{ github.sha }} ${{ env.BUILD_FLAGS }}
|
||||
|
||||
- run: ls -la build
|
||||
|
||||
- name: Compress Linux Builds
|
||||
if: matrix.platform == 'linux'
|
||||
|
@ -143,24 +183,28 @@ jobs:
|
|||
rm -rf statping.exe
|
||||
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
|
||||
|
||||
- name: Compress MacOS (Darwin) Builds
|
||||
- name: Compress Darwin Builds
|
||||
if: matrix.platform == 'darwin'
|
||||
run: |
|
||||
cd build
|
||||
mv statping-darwin-${{ matrix.arch }} statping
|
||||
chmod +x statping
|
||||
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz *
|
||||
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
|
||||
rm -rf statping
|
||||
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
|
||||
|
||||
- name: Upload Compiled Statping Binary
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: statping-${{ matrix.platform }}-${{ matrix.arch }}
|
||||
name: binaries
|
||||
path: ./build
|
||||
|
||||
# TODO refactor (and fix) tests
|
||||
|
||||
test:
|
||||
needs: frontend
|
||||
needs: [ data, frontend ]
|
||||
# temporarily disabled
|
||||
if: "false"
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
|
@ -186,10 +230,10 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
go-version: ${{ needs.data.outputs.go_version }}
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.14.0
|
||||
node-version: ${{ needs.data.outputs.node_version }}
|
||||
|
||||
- name: Install Global Dependencies
|
||||
run: npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
||||
|
@ -197,8 +241,7 @@ jobs:
|
|||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
echo "/opt/hostedtoolcache/node/${{ needs.data.outputs.node_version }}/x64/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
|
@ -208,9 +251,6 @@ jobs:
|
|||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build certs
|
||||
chmod +x statping
|
||||
|
@ -221,7 +261,7 @@ jobs:
|
|||
go get gotest.tools/gotestsum
|
||||
gotestsum --no-summary=skipped --format testname -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
VERSION: ${{ needs.data.outputs.version }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
DB_CONN: sqlite3
|
||||
STATPING_DIR: ${{ github.workspace }}
|
||||
|
@ -241,7 +281,7 @@ jobs:
|
|||
MOBILE_NUMBER: ${{ secrets.MOBILE_NUMBER }}
|
||||
PUSHOVER_TOKEN: ${{ secrets.PUSHOVER_TOKEN }}
|
||||
PUSHOVER_API: ${{ secrets.PUSHOVER_API }}
|
||||
SLACK_URL: https://hooks.slack.com/services/TTJ1B90DP/RENU20O9M/9uI823SUnYBuGcxYlpSimD6H
|
||||
SLACK_URL: ${{ secrets.SLACK_URL }}
|
||||
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }}
|
||||
TELEGRAM_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL }}
|
||||
TWILIO_SID: ${{ secrets.TWILIO_SID }}
|
||||
|
@ -256,27 +296,26 @@ jobs:
|
|||
SNS_REGION: ${{ secrets.SNS_REGION }}
|
||||
SNS_TOPIC: ${{ secrets.SNS_TOPIC }}
|
||||
|
||||
# - name: Coveralls Testing Coverage
|
||||
# run: |
|
||||
# go get github.com/mattn/goveralls
|
||||
# goveralls -coverprofile=coverage.out -repotoken $COVERALLS
|
||||
# env:
|
||||
# COVERALLS: ${{ secrets.COVERALLS }}
|
||||
- name: Coveralls Testing Coverage
|
||||
run: |
|
||||
go get github.com/mattn/goveralls
|
||||
goveralls -coverprofile=coverage.out -repotoken $COVERALLS
|
||||
env:
|
||||
COVERALLS: ${{ secrets.COVERALLS }}
|
||||
|
||||
test-postman-sqlite:
|
||||
needs: frontend
|
||||
needs: [ data, frontend ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
go-version: ${{ needs.data.outputs.go_version }}
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
echo "/opt/hostedtoolcache/node/${{ needs.data.outputs.node_version }}/x64/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
|
@ -286,9 +325,6 @@ jobs:
|
|||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
|
@ -307,7 +343,7 @@ jobs:
|
|||
delayRequest: 600
|
||||
|
||||
test-postman-mysql:
|
||||
needs: frontend
|
||||
needs: [ data, frontend ]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
|
@ -324,13 +360,12 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
go-version: ${{ needs.data.outputs.go_version }}
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
echo "/opt/hostedtoolcache/node/${{ needs.data.outputs.node_version }}/x64/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
|
@ -340,11 +375,6 @@ jobs:
|
|||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
MJML_APP: ${{ secrets.MJML_APP }}
|
||||
MJML_PRIVATE: ${{ secrets.MJML_PRIVATE }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
|
@ -363,7 +393,7 @@ jobs:
|
|||
delayRequest: 600
|
||||
|
||||
test-postman-postgres:
|
||||
needs: frontend
|
||||
needs: [ data, frontend ]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
|
@ -381,13 +411,12 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17.x
|
||||
go-version: ${{ needs.data.outputs.go_version }}
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
echo "/opt/hostedtoolcache/node/${{ needs.data.outputs.node_version }}/x64/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
|
@ -397,9 +426,6 @@ jobs:
|
|||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
|
@ -416,3 +442,57 @@ jobs:
|
|||
environment: ./dev/postman_env_postgres.json
|
||||
timeoutRequest: 30000
|
||||
delayRequest: 600
|
||||
|
||||
docker-build:
|
||||
needs: [ data ]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: jemand771/docker-build-action@main
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
push_strategy: artifact
|
||||
platforms: linux/amd64
|
||||
args: |
|
||||
COMMIT=${{ github.sha }}
|
||||
VERSION=${{ needs.data.outputs.version }}
|
||||
BUILDKIT_INLINE_CACHE=true
|
||||
|
||||
# all other release jobs should be based on this
|
||||
release:
|
||||
# only run release jobs on push to stable/unstable.
|
||||
if: ${{ success() && fromJSON(needs.data.outputs.is_release) }}
|
||||
needs: [ data, build, test-postman-sqlite, test-postman-mysql, test-postman-postgres, docker-build ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: binaries
|
||||
path: binaries
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: docker-images
|
||||
path: images
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ github.token }}
|
||||
- uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifactErrorsFailBuild: true
|
||||
artifacts: binaries/*
|
||||
draft: true
|
||||
generateReleaseNotes: true
|
||||
omitBodyDuringUpdate: true
|
||||
prerelease: ${{ fromJSON(needs.data.outputs.is_prerelease) && 'true' || 'false'}}
|
||||
updateOnlyUnreleased: true
|
||||
- name: import images
|
||||
run: for file in images/*.tar; do docker load < $file; done
|
||||
- run: docker image ls
|
||||
- name: push all images
|
||||
run: for image in $(cat images/docker-images.txt); do echo pushing $image; docker push $image; done
|
||||
# TODO bring back dockerhub image
|
|
@ -1,173 +0,0 @@
|
|||
name: Push Request Testing
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*' # matches every branch
|
||||
- '*/*' # matches every branch containing a single '/'
|
||||
- '!master' # excludes master
|
||||
- '!dev' # excludes dev
|
||||
pull_request:
|
||||
branches:
|
||||
- '*' # matches every branch
|
||||
- '*/*' # matches every branch containing a single '/'
|
||||
- '!master' # excludes master
|
||||
- '!dev' # excludes dev
|
||||
|
||||
|
||||
jobs:
|
||||
compile:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.17.8'
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.14.0'
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Add GOBIN to PATH
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Install Global Dependencies
|
||||
run: npm install -g yarn sass cross-env
|
||||
|
||||
- name: Download Frontend Dependencies
|
||||
if: steps.nodecache.outputs.cache-hit != 'true'
|
||||
working-directory: ./frontend
|
||||
run: yarn
|
||||
|
||||
- name: Download Go mods
|
||||
if: steps.golangcache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
|
||||
- name: Build Frontend Statping
|
||||
run: make clean compile
|
||||
|
||||
- name: Upload Compiled Frontend (rice-box.go)
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
pr-test:
|
||||
needs: compile
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: password123
|
||||
POSTGRES_DB: statping
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: password123
|
||||
MYSQL_DATABASE: statping
|
||||
ports:
|
||||
- 3306:3306
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
|
||||
steps:
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.15.x
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.14.0
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Global Dependencies
|
||||
run: |
|
||||
go get gotest.tools/gotestsum
|
||||
npm install -g yarn sass newman cross-env wait-on @sentry/cli
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
run: |
|
||||
make build certs
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
|
||||
- name: Go Tests
|
||||
run: |
|
||||
SASS=`which sass` gotestsum --no-summary=skipped --format testname -- -covermode=count -coverprofile=coverage.out -p=1 ./...
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
DB_CONN: sqlite3
|
||||
STATPING_DIR: ${{ github.workspace }}
|
||||
API_SECRET: demopassword123
|
||||
DISABLE_LOGS: false
|
||||
ALLOW_REPORTS: true
|
||||
PUSH_REQUEST: true
|
||||
|
||||
pr-test-postman:
|
||||
needs: compile
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.15.x
|
||||
|
||||
- name: Setting ENV's
|
||||
run: |
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
echo "/opt/hostedtoolcache/node/16.14.0/x64/bin" >> $GITHUB_PATH
|
||||
echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Install Statping
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make build
|
||||
chmod +x statping
|
||||
mv statping $(go env GOPATH)/bin/
|
||||
|
||||
- name: Run Statping
|
||||
run: |
|
||||
API_SECRET=demosecret123 statping --port=8080 > /dev/null &
|
||||
sleep 3
|
||||
|
||||
- name: Postman Tests
|
||||
uses: matt-ball/newman-action@master
|
||||
with:
|
||||
collection: ./dev/postman.json
|
||||
environment: ./dev/postman_environment_sqlite.json
|
||||
timeoutRequest: 15000
|
||||
delayRequest: 500
|
|
@ -0,0 +1,4 @@
|
|||
[submodule "source/statping-ng.wiki"]
|
||||
path = source/statping-ng.wiki
|
||||
# TODO should this be a relative path? (would require wiki fork for statping forks)
|
||||
url = https://github.com/statping-ng/statping-ng.wiki.git
|
22
Dockerfile
22
Dockerfile
|
@ -10,7 +10,7 @@ RUN yarn build && yarn cache clean
|
|||
|
||||
# Statping Golang BACKEND building from source
|
||||
# Creates "/go/bin/statping" and "/usr/local/bin/sass" for copying
|
||||
FROM golang:1.17-alpine AS backend
|
||||
FROM golang:1.20-alpine AS backend
|
||||
LABEL maintainer="Statping-NG (https://github.com/statping-ng)"
|
||||
ARG VERSION
|
||||
ARG COMMIT
|
||||
|
@ -21,7 +21,7 @@ RUN apk add --update --no-cache libstdc++ gcc g++ make git autoconf \
|
|||
update-ca-certificates
|
||||
|
||||
WORKDIR /root
|
||||
RUN git clone https://github.com/sass/sassc.git
|
||||
RUN git clone --depth 1 --branch 3.6.2 https://github.com/sass/sassc.git
|
||||
RUN . sassc/script/bootstrap && make -C sassc -j4
|
||||
# sassc binary: /root/sassc/bin/sassc
|
||||
|
||||
|
@ -30,15 +30,17 @@ ADD go.mod go.sum ./
|
|||
RUN go mod download
|
||||
ENV GO111MODULE on
|
||||
ENV CGO_ENABLED 1
|
||||
RUN go get github.com/stretchr/testify/assert && \
|
||||
go get github.com/stretchr/testify/require && \
|
||||
go get github.com/GeertJohan/go.rice/rice && \
|
||||
go get github.com/cortesi/modd/cmd/modd && \
|
||||
go get github.com/crazy-max/xgo
|
||||
COPY . .
|
||||
COPY cmd ./cmd
|
||||
COPY database ./database
|
||||
COPY handlers ./handlers
|
||||
COPY notifiers ./notifiers
|
||||
COPY source ./source
|
||||
COPY types ./types
|
||||
COPY utils ./utils
|
||||
COPY --from=frontend /statping/dist/ ./source/dist/
|
||||
RUN make clean generate embed
|
||||
RUN go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" -o statping --tags "netgo linux" ./cmd
|
||||
RUN go install github.com/GeertJohan/go.rice/rice@latest
|
||||
RUN cd source && rice embed-go
|
||||
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
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
FROM node:16.14.0-alpine AS frontend
|
||||
LABEL maintainer="Statping-ng (https://github.com/statping-ng)"
|
||||
ARG BUILDPLATFORM
|
||||
WORKDIR /statping
|
||||
COPY ./frontend/package.json .
|
||||
COPY ./frontend/yarn.lock .
|
||||
RUN yarn install --pure-lockfile --network-timeout 1000000
|
||||
COPY ./frontend .
|
||||
RUN yarn build && yarn cache clean
|
||||
|
||||
# Statping Golang BACKEND building from source
|
||||
# Creates "/go/bin/statping" and "/usr/local/bin/sass" for copying
|
||||
FROM golang:1.17-alpine AS backend
|
||||
LABEL maintainer="Statping-NG (https://github.com/statping-ng)"
|
||||
ARG VERSION
|
||||
ARG COMMIT
|
||||
ARG BUILDPLATFORM
|
||||
ARG TARGETARCH
|
||||
RUN apk add --update --no-cache libstdc++ gcc g++ make git autoconf \
|
||||
libtool ca-certificates linux-headers wget curl jq && \
|
||||
update-ca-certificates
|
||||
|
||||
WORKDIR /root
|
||||
RUN git clone https://github.com/sass/sassc.git
|
||||
RUN . sassc/script/bootstrap && make -C sassc -j4
|
||||
# sassc binary: /root/sassc/bin/sassc
|
||||
|
||||
WORKDIR /go/src/github.com/statping-ng/statping-ng
|
||||
ADD go.mod go.sum ./
|
||||
RUN go mod download
|
||||
ENV GO111MODULE on
|
||||
ENV CGO_ENABLED 1
|
||||
RUN go get github.com/stretchr/testify/assert && \
|
||||
go get github.com/stretchr/testify/require && \
|
||||
go get github.com/GeertJohan/go.rice/rice && \
|
||||
go get github.com/cortesi/modd/cmd/modd && \
|
||||
go get github.com/crazy-max/xgo
|
||||
COPY . .
|
||||
COPY --from=frontend /statping/dist/ ./source/dist/
|
||||
RUN make clean generate embed
|
||||
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
|
||||
# /statping - Vue frontend (from frontend)
|
|
@ -19,7 +19,7 @@ import (
|
|||
|
||||
var (
|
||||
// VERSION stores the current version of Statping
|
||||
VERSION string
|
||||
VERSION string = "dev"
|
||||
// COMMIT stores the git commit hash for this version of Statping
|
||||
COMMIT string
|
||||
log = utils.Log.WithField("type", "cmd")
|
||||
|
@ -83,7 +83,7 @@ func start() {
|
|||
log.Errorf("Statping Log Error: %v\n", err)
|
||||
}
|
||||
|
||||
log.Info(fmt.Sprintf("Starting Statping v%s", VERSION))
|
||||
log.Info(fmt.Sprintf("Starting Statping %s", VERSION))
|
||||
|
||||
utils.Params.Set("SERVER_IP", ipAddress)
|
||||
utils.Params.Set("SERVER_PORT", port)
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
# Statping-ng maintainer documentation
|
||||
This document will briefly outline our workflows and give instructions on some common tasks.
|
||||
|
||||
Feel free to expand this; at the moment it's pretty empty here.
|
||||
|
||||
|
||||
## GitHub actions
|
||||
Binaries and docker images get built automatically by GitHub actions.
|
||||
If the builds succeed, tests are run to ensure nothing is completely broken.
|
||||
Build artifacts can be downloaded from the actions tab on GitHub.
|
||||
|
||||
This happens on every push to this repo and on every pull request update.
|
||||
|
||||
|
||||
## Releases
|
||||
We used to have a model of "stable" and "unstable" releases, which would get triggered by pushing to a respective release branch.
|
||||
The new system tries to address some of the issues with the old system and simplifies the workflow definitions.
|
||||
|
||||
Incoming pull requests are merged into the `main` (default) branch.
|
||||
Once you feel like we have enough new changes to justify a release, a tag can be created.
|
||||
This is **not** a GitHub release and sadly can't be done from github.com directly.
|
||||
Either
|
||||
* create a stable release ready for general usage as `v{major}.{minor}.{patch}`, e.g. `v1.2.3`
|
||||
* or create a beta release intended for testing as `v{major}.{minor}.{patch}-{suffix}`, e.g. `v1.2.3-rc0`
|
||||
* personal note: I don't know what a good format for suffixes is. I'm not even sure if we _need_ beta releases long term. We'll see; I'm open to suggestions
|
||||
|
||||
To create a tag from your local workspace, run
|
||||
```bash
|
||||
git checkout main
|
||||
git pull
|
||||
git tag v1.2.3
|
||||
git push origin v1.2.3
|
||||
```
|
||||
You can also create tags on different branches (e.g. for backports).
|
||||
Remember to check out the revision you want to tag _before_ tagging.
|
||||
Do not move existing (pushed) tags!
|
||||
|
||||
When a new tag is pushed, the same build+test actions described above run, but additionally the built docker images are pushed and a draft release on GitHub is created.
|
||||
All artifacts will get attached to that release.
|
||||
|
||||
The release will be in draft mode to allow last minute changes if necessary.
|
||||
Untick the draft checkbox if everything looks alright.
|
|
@ -766,105 +766,6 @@
|
|||
"description": "You can create custom badges with dynamic information by using [Shields.io](https://shields.io/) and parsing JSON fields with [JSONPath](http://jsonpath.com/). \n\n## Examples\n\n#### Service Uptime Percent\n<img src=\"https://img.shields.io/badge/dynamic/json?color=blue&label=%20Statping%20Uptime&query=%24.online_24_hours&url=https%3A%2F%2Fdemo.statping.com%2Fapi%2Fservices%2F2&suffix=%\">\n\n- URL: [https://demo.statping.com/api/services/2](https://demo.statping.com/api/services/2)\n- JSON Path: `$.online_24_hours`\n- Suffix: `%`\n\n```\nhttps://img.shields.io/badge/dynamic/json?color=blue&label=%20Statping%20Uptime&query=%24.online_24_hours&url=https%3A%2F%2Fdemo.statping.com%2Fapi%2Fservices%2F2&suffix=%\n```\n\n#### Count Services\n<img src=\"https://img.shields.io/badge/dynamic/json?color=purple&label=Demo%20Site&query=%24.services&url=https://demo.statping.com/health&suffix=%20services\">\n\n- URL: [https://demo.statping.com/health](https://demo.statping.com/health)\n- JSON Path: `$.services`\n- Suffix: ` services`\n\n```\nhttps://img.shields.io/badge/dynamic/json?color=purple&label=Demo%20Site&query=%24.services&url=https://demo.statping.com/health&suffix=%20services\n```"
|
||||
},
|
||||
"response": []
|
||||
},
|
||||
{
|
||||
"name": "Send Push Notification",
|
||||
"event": [
|
||||
{
|
||||
"listen": "test",
|
||||
"script": {
|
||||
"id": "11fe392f-3636-4d2d-84e9-1119b351d8ee",
|
||||
"exec": [
|
||||
""
|
||||
],
|
||||
"type": "text/javascript"
|
||||
}
|
||||
}
|
||||
],
|
||||
"request": {
|
||||
"auth": {
|
||||
"type": "noauth"
|
||||
},
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\n \"notifications\": [\n {\n \"tokens\": [\"dBLB1WvTJkiWl3ZPjP0-BS:APA91bGXUbKy65CaN1XqExHXZ892jik2k9XORXSiqdUyXhcQ5RDiJ6LfXrckuH3StYJFcma4UCDr_N038YUtxYsRIHYx_8vWZ6D2uq3199LegWXGl5tz-9zk3M4WZGX8WGxIRUJ31QtW\"],\n \"platform\": 2,\n \"message\": \"This notification will go to iOS and Android platform via Firebase!\"\n }\n ]\n}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": {
|
||||
"raw": "https://push.statping.com/api/push",
|
||||
"protocol": "https",
|
||||
"host": [
|
||||
"push",
|
||||
"statping",
|
||||
"com"
|
||||
],
|
||||
"path": [
|
||||
"api",
|
||||
"push"
|
||||
]
|
||||
},
|
||||
"description": "Send a push notification to the Statping mobile app using your Firebase device identifier."
|
||||
},
|
||||
"response": [
|
||||
{
|
||||
"name": "Send Push Notification",
|
||||
"originalRequest": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\n \"notifications\": [\n {\n \"tokens\": [\"dBLB1WvTJkiWl3ZPjP0-BS:APA91bGXUbKy65CaN1XqExHXZ892jik2k9XORXSiqdUyXhcQ5RDiJ6LfXrckuH3StYJFcma4UCDr_N038YUtxYsRIHYx_8vWZ6D2uq3199LegWXGl5tz-9zk3M4WZGX8WGxIRUJ31QtW\"],\n \"platform\": 2,\n \"message\": \"This notification will go to iOS and Android Statping App\"\n }\n ]\n}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": {
|
||||
"raw": "https://push.statping.com/api/push",
|
||||
"protocol": "https",
|
||||
"host": [
|
||||
"push",
|
||||
"statping",
|
||||
"com"
|
||||
],
|
||||
"path": [
|
||||
"api",
|
||||
"push"
|
||||
]
|
||||
}
|
||||
},
|
||||
"status": "OK",
|
||||
"code": 200,
|
||||
"_postman_previewlanguage": "json",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Length",
|
||||
"value": "37"
|
||||
},
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json; charset=utf-8"
|
||||
},
|
||||
{
|
||||
"key": "Date",
|
||||
"value": "Thu, 13 Aug 2020 02:24:17 GMT"
|
||||
},
|
||||
{
|
||||
"key": "X-Gorush-Version",
|
||||
"value": "No Version Provided"
|
||||
}
|
||||
],
|
||||
"cookie": [],
|
||||
"body": "{\n \"counts\": 1,\n \"logs\": [],\n \"success\": \"ok\"\n}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"description": "This is for Statping's miscellaneous API endpoints that aren't a part of another category.",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
</div>
|
||||
<span class="font-1 mt-3">
|
||||
<a href="https://github.com/statping-ng/statping-ng" class="statping" target="_blank">
|
||||
Statping v{{core.version}} made with <font-awesome-icon icon="heart" class="hlight font-1"/></a>
|
||||
Statping {{core.version}} made with <font-awesome-icon icon="heart" class="hlight font-1"/></a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<font-awesome-icon icon="code-branch" class="mr-3"/> {{$t('repo')}}
|
||||
</a>
|
||||
|
||||
<span class="small text-dim text-center mt-5">Statping-ng v{{core.version}}<br>
|
||||
<span class="small text-dim text-center mt-5">Statping-ng {{core.version}}<br>
|
||||
<a class="small text-muted no-decoration" v-if="core.commit" v-bind:href="`https://github.com/statping-ng/statping-ng/commit/${core.commit}`">{{core.commit.slice(0,8)}}</a>
|
||||
</span>
|
||||
|
||||
|
|
27
go.mod
27
go.mod
|
@ -1,10 +1,9 @@
|
|||
module github.com/statping-ng/statping-ng
|
||||
|
||||
// +heroku goVersion go1.17
|
||||
go 1.17
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/GeertJohan/go.rice v1.0.2
|
||||
github.com/GeertJohan/go.rice v1.0.3
|
||||
github.com/aws/aws-sdk-go v1.30.20
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||
github.com/fatih/structs v1.1.0
|
||||
|
@ -23,9 +22,9 @@ require (
|
|||
github.com/spf13/cobra v1.0.0
|
||||
github.com/spf13/viper v1.6.3
|
||||
github.com/statping-ng/emails v1.0.3
|
||||
github.com/stretchr/testify v1.6.1
|
||||
github.com/stretchr/testify v1.8.1
|
||||
github.com/t-tiger/gorm-bulk-insert/v2 v2.0.1
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
|
||||
golang.org/x/crypto v0.4.0
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||
google.golang.org/grpc v1.28.1
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
|
@ -51,12 +50,12 @@ require (
|
|||
github.com/cenkalti/backoff/v4 v4.0.2 // indirect
|
||||
github.com/cloudflare/cloudflare-go v0.11.6 // indirect
|
||||
github.com/cpu/goacmedns v0.0.2 // indirect
|
||||
github.com/daaku/go.zipexe v1.0.0 // indirect
|
||||
github.com/daaku/go.zipexe v1.0.2 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/dimchansky/utfbom v1.1.0 // indirect
|
||||
github.com/dnsimple/dnsimple-go v0.60.0 // indirect
|
||||
github.com/exoscale/egoscale v0.18.1 // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.1 // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
||||
github.com/go-acme/lego/v3 v3.7.0 // indirect
|
||||
github.com/go-errors/errors v1.0.2 // indirect
|
||||
github.com/go-resty/resty/v2 v2.2.0 // indirect
|
||||
|
@ -64,6 +63,8 @@ require (
|
|||
github.com/gofrs/uuid v3.2.0+incompatible // indirect
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
||||
github.com/golang/protobuf v1.4.2 // indirect
|
||||
github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c // indirect
|
||||
github.com/google/go-cmp v0.5.9 // indirect
|
||||
github.com/google/go-querystring v1.0.0 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
||||
|
@ -78,6 +79,7 @@ require (
|
|||
github.com/json-iterator/go v1.1.9 // indirect
|
||||
github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b // indirect
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect
|
||||
github.com/kr/pretty v0.3.1 // indirect
|
||||
github.com/labbsr0x/bindman-dns-webhook v1.0.2 // indirect
|
||||
github.com/labbsr0x/goh v1.0.1 // indirect
|
||||
github.com/lextoumbourou/goodhosts v2.1.0+incompatible // indirect
|
||||
|
@ -110,23 +112,26 @@ require (
|
|||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/subosito/gotenv v1.2.0 // indirect
|
||||
github.com/tdewolff/minify/v2 v2.12.4 // indirect
|
||||
github.com/tdewolff/parse/v2 v2.6.4 // indirect
|
||||
github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7 // indirect
|
||||
github.com/transip/gotransip/v6 v6.0.2 // indirect
|
||||
github.com/vultr/govultr v0.3.3 // indirect
|
||||
go.opencensus.io v0.22.3 // indirect
|
||||
go.uber.org/ratelimit v0.1.0 // indirect
|
||||
golang.org/x/net v0.2.0 // indirect
|
||||
golang.org/x/net v0.4.0 // indirect
|
||||
golang.org/x/sync v0.1.0 // indirect
|
||||
golang.org/x/sys v0.2.0 // indirect
|
||||
golang.org/x/text v0.4.0 // indirect
|
||||
golang.org/x/sys v0.3.0 // indirect
|
||||
golang.org/x/text v0.5.0 // indirect
|
||||
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 // indirect
|
||||
google.golang.org/api v0.21.0 // indirect
|
||||
google.golang.org/appengine v1.6.6 // indirect
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
|
||||
google.golang.org/protobuf v1.25.0 // indirect
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
||||
gopkg.in/ini.v1 v1.55.0 // indirect
|
||||
gopkg.in/ns1/ns1-go.v2 v2.3.0 // indirect
|
||||
gopkg.in/square/go-jose.v2 v2.5.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
|
65
go.sum
65
go.sum
|
@ -75,8 +75,8 @@ github.com/DATA-DOG/go-sqlmock v1.4.1 h1:ThlnYciV1iM/V0OSF/dtkqWb6xo5qITT1TJBG1M
|
|||
github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||
github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0=
|
||||
github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0=
|
||||
github.com/GeertJohan/go.rice v1.0.2 h1:PtRw+Tg3oa3HYwiDBZyvOJ8LdIyf6lAovJJtr7YOAYk=
|
||||
github.com/GeertJohan/go.rice v1.0.2/go.mod h1:af5vUNlDNkCjOZeSGFgIJxDje9qdjsO6hshx0gTmZt4=
|
||||
github.com/GeertJohan/go.rice v1.0.3 h1:k5viR+xGtIhF61125vCE1cmJ5957RQGXG6dmbaWZSmI=
|
||||
github.com/GeertJohan/go.rice v1.0.3/go.mod h1:XVdrU4pW00M4ikZed5q56tPf1v2KwnIKeIdc9CBYNt4=
|
||||
github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY=
|
||||
github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM=
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
|
@ -133,8 +133,9 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
|
|||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/daaku/go.zipexe v1.0.0 h1:VSOgZtH418pH9L16hC/JrgSNJbbAL26pj7lmD1+CGdY=
|
||||
github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E=
|
||||
github.com/daaku/go.zipexe v1.0.2 h1:Zg55YLYTr7M9wjKn8SY/WcpuuEi+kR2u4E8RhvpyXmk=
|
||||
github.com/daaku/go.zipexe v1.0.2/go.mod h1:5xWogtqlYnfBXkSB1o9xysukNP9GTvaNkqzUZbt3Bw8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -148,6 +149,7 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUn
|
|||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4=
|
||||
github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
|
||||
github.com/djherbis/atime v1.1.0/go.mod h1:28OF6Y8s3NQWwacXc5eZTsEsiMzp7LF8MbXE+XJPdBE=
|
||||
github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
|
||||
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
|
||||
github.com/dnsimple/dnsimple-go v0.60.0 h1:N+q+ML1CZGf+5r4udu9Opy7WJNtOaFT9aM86Af9gLhk=
|
||||
|
@ -176,8 +178,8 @@ github.com/foomo/tlsconfig v0.0.0-20180418120404-b67861b076c9 h1:RPOsDNbnDUFaSt/
|
|||
github.com/foomo/tlsconfig v0.0.0-20180418120404-b67861b076c9/go.mod h1:OdiGKKgTAfMv7x9Hh9qYFueue77tr09LUAxwy2+M8wY=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
|
||||
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
|
||||
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
|
||||
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
|
||||
github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc=
|
||||
github.com/getsentry/sentry-go v0.5.1 h1:MIPe7ScHADsrK2vznqmhksIUFxq7m0JfTh+ZIMkI+VQ=
|
||||
github.com/getsentry/sentry-go v0.5.1/go.mod h1:B8H7x8TYDPkeWPRzGpIiFO97LZP6rL8A3hEt8lUItMw=
|
||||
|
@ -248,6 +250,8 @@ github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0
|
|||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/gomarkdown/markdown v0.0.0-20200820230800-3724143f5294/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
|
||||
github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8=
|
||||
github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA=
|
||||
github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
|
@ -256,8 +260,9 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
|
|||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
|
||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
|
@ -360,6 +365,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJ
|
|||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
|
@ -426,7 +434,6 @@ github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ
|
|||
github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4=
|
||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E=
|
||||
github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc=
|
||||
|
@ -460,6 +467,7 @@ github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAv
|
|||
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
|
||||
github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
|
@ -494,6 +502,8 @@ github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKc
|
|||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
|
@ -542,21 +552,31 @@ github.com/statping/emails v1.0.0/go.mod h1:xFU85jXaiWQadqHqu/jDrGsAn6WPSk1WgKyT
|
|||
github.com/statping/statping v0.90.64/go.mod h1:lbyNPB73IjWtnommV4wSejYfgUT1yLhhqelMjl1ZBb8=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
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/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/tdewolff/minify/v2 v2.8.0/go.mod h1:6zN8VLhMfFxNrwHROcboYNo2+huPNu4SV8DPh3PUQ8E=
|
||||
github.com/tdewolff/minify/v2 v2.12.4 h1:kejsHQMM17n6/gwdw53qsi6lg0TGddZADVyQOz1KMdE=
|
||||
github.com/tdewolff/minify/v2 v2.12.4/go.mod h1:h+SRvSIX3kwgwTFOpSckvSxgax3uy8kZTSF1Ojrr3bk=
|
||||
github.com/tdewolff/parse/v2 v2.4.4/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
|
||||
github.com/tdewolff/parse/v2 v2.6.4 h1:KCkDvNUMof10e3QExio9OPZJT8SbdKojLBumw8YZycQ=
|
||||
github.com/tdewolff/parse/v2 v2.6.4/go.mod h1:woz0cgbLwFdtbjJu8PIKxhW05KplTFQkOdX78o+Jgrs=
|
||||
github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
||||
github.com/tdewolff/test v1.0.7/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/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY=
|
||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||
|
@ -628,8 +648,9 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
|
|||
golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200420201142-3c4aac89819a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
|
||||
golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
|
@ -699,8 +720,9 @@ golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81R
|
|||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
|
||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
||||
golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
||||
golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU=
|
||||
golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
|
@ -761,22 +783,22 @@ golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
|
||||
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
||||
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM=
|
||||
golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
|
@ -827,7 +849,6 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
|
|||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
|
||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||
|
@ -901,8 +922,9 @@ gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod
|
|||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
|
||||
|
@ -936,8 +958,9 @@ gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
|
|
@ -176,7 +176,7 @@ func DeleteAllAssets(folder string) error {
|
|||
func CopyAllToPublic(box *rice.Box) error {
|
||||
exclude := map[string]bool{
|
||||
// "base.gohtml": true,
|
||||
"index.html": true,
|
||||
"index.html": true,
|
||||
}
|
||||
|
||||
return box.Walk("/", func(path string, info os.FileInfo, err error) error {
|
||||
|
|
|
@ -6,10 +6,6 @@ package utils
|
|||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"os/exec"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
0.91.0
|
Loading…
Reference in New Issue