Setup a Github action for checking the cloudflared build
This commit is contained in:
parent
5b35e968f3
commit
4d43a70a38
|
@ -0,0 +1,20 @@
|
||||||
|
on: [push, pull_request]
|
||||||
|
name: Check
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.15.x]
|
||||||
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
- name: Install go-sumtype
|
||||||
|
run: go get github.com/BurntSushi/go-sumtype
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Test
|
||||||
|
run: make test
|
|
@ -1,3 +1,5 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
package tunnel
|
package tunnel
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package tunnel
|
package tunnel
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
@ -95,7 +94,7 @@ func TestTunnelfilePath(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
homeDir, err := homedir.Dir()
|
homeDir, err := homedir.Dir()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
expected := fmt.Sprintf("%s/.cloudflared/%v.json", homeDir, tunnelID)
|
expected := filepath.Join(homeDir, ".cloudflared", tunnelID.String()+".json")
|
||||||
assert.Equal(t, expected, actual)
|
assert.Equal(t, expected, actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
package updater
|
package updater
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@ -13,6 +15,7 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -21,6 +24,8 @@ import (
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var testFilePath = filepath.Join(os.TempDir(), "test")
|
||||||
|
|
||||||
func respondWithJSON(w http.ResponseWriter, v interface{}, status int) {
|
func respondWithJSON(w http.ResponseWriter, v interface{}, status int) {
|
||||||
data, _ := json.Marshal(v)
|
data, _ := json.Marshal(v)
|
||||||
|
|
||||||
|
@ -208,7 +213,6 @@ func TestUpdateService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
log.Println("server url: ", ts.URL)
|
log.Println("server url: ", ts.URL)
|
||||||
|
@ -229,7 +233,6 @@ func TestBetaUpdateService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
@ -249,7 +252,6 @@ func TestFailUpdateService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
@ -263,7 +265,6 @@ func TestNoUpdateService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
@ -278,7 +279,6 @@ func TestForcedUpdateService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
@ -298,7 +298,6 @@ func TestUpdateSpecificVersionService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
reqVersion := "2020.9.1"
|
reqVersion := "2020.9.1"
|
||||||
|
@ -319,7 +318,6 @@ func TestCompressedUpdateService(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
@ -339,7 +337,6 @@ func TestUpdateWhenRunningKnownBuggyVersion(t *testing.T) {
|
||||||
ts := createServer()
|
ts := createServer()
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
testFilePath := "tmpfile"
|
|
||||||
createTestFile(t, testFilePath)
|
createTestFile(t, testFilePath)
|
||||||
defer os.Remove(testFilePath)
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
package metrics
|
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Timer assumes the metrics is partitioned by one label
|
|
||||||
type Timer struct {
|
|
||||||
startTime map[string]time.Time
|
|
||||||
metrics *prometheus.HistogramVec
|
|
||||||
measureUnit time.Duration
|
|
||||||
labelKey string
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewTimer(metrics *prometheus.HistogramVec, unit time.Duration, labelKey string) *Timer {
|
|
||||||
return &Timer{
|
|
||||||
startTime: make(map[string]time.Time),
|
|
||||||
measureUnit: unit,
|
|
||||||
metrics: metrics,
|
|
||||||
labelKey: labelKey,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *Timer) Start(labelVal string) {
|
|
||||||
i.startTime[labelVal] = time.Now()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *Timer) End(labelVal string) time.Duration {
|
|
||||||
if start, ok := i.startTime[labelVal]; ok {
|
|
||||||
return Latency(start, time.Now())
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *Timer) Observe(measurement time.Duration, labelVal string) {
|
|
||||||
metricsLabels := prometheus.Labels{i.labelKey: labelVal}
|
|
||||||
i.metrics.With(metricsLabels).Observe(float64(measurement / i.measureUnit))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *Timer) EndAndObserve(labelVal string) {
|
|
||||||
i.Observe(i.End(labelVal), labelVal)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Latency(startTime, endTime time.Time) time.Duration {
|
|
||||||
return endTime.Sub(startTime)
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
package metrics
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestEnd(t *testing.T) {
|
|
||||||
m := prometheus.NewHistogramVec(
|
|
||||||
prometheus.HistogramOpts{
|
|
||||||
Namespace: "TestCallLatencyWithoutMeasurement",
|
|
||||||
Name: "Latency",
|
|
||||||
Buckets: prometheus.LinearBuckets(0, 50, 100),
|
|
||||||
},
|
|
||||||
[]string{"key"},
|
|
||||||
)
|
|
||||||
timer := NewTimer(m, time.Millisecond, "key")
|
|
||||||
assert.Equal(t, time.Duration(0), timer.End("dne"))
|
|
||||||
timer.Start("test")
|
|
||||||
assert.NotEqual(t, time.Duration(0), timer.End("test"))
|
|
||||||
}
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
package sshgen
|
package sshgen
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
package watcher
|
package watcher
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
Loading…
Reference in New Issue