diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..3a145b96 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,44 @@ +name: CI + +on: [push, pull_request] + +jobs: + # The "build" workflow + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Install and run golangci-lint as a separate step, it's much faster this + # way because this action has caching. It'll get run again in `make lint` + # below, but it's still much faster in the end than installing + # golangci-lint manually in the `Run lint` step. + - uses: golangci/golangci-lint-action@v2 + + # Setup Go + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: '1.16.3' # The Go version to download (if necessary) and use. + + # Install all the dependencies + - name: Install dependencies + run: | + go version + go get -u golang.org/x/lint/golint + sudo apt update + sudo apt install -y make + + - name: Run tests + run: make test + + - name: Run lint + run: make lint + + - name: Run build + run: make + diff --git a/cmd/headscale/headscale.go b/cmd/headscale/headscale.go index 3ea3a00a..e602c37d 100644 --- a/cmd/headscale/headscale.go +++ b/cmd/headscale/headscale.go @@ -50,7 +50,7 @@ func loadConfig(path string) error { err := viper.ReadInConfig() if err != nil { - return errors.New(fmt.Sprintf("Fatal error reading config file: %s \n", err)) + return fmt.Errorf("Fatal error reading config file: %s \n", err) } // Collect any validation errors and return them all at once diff --git a/cmd/headscale/headscale_test.go b/cmd/headscale/headscale_test.go index a3894f62..baa2a65a 100644 --- a/cmd/headscale/headscale_test.go +++ b/cmd/headscale/headscale_test.go @@ -90,7 +90,6 @@ func (*Suite) TestTLSConfigValidation(c *check.C) { // Check configuration validation errors (2) configYaml = []byte("---\nserver_url: \"http://192.168.1.12:8000\"\ntls_letsencrypt_hostname: \"example.com\"\ntls_letsencrypt_challenge_type: \"TLS-ALPN-01\"") - fmt.Printf(string(configYaml)) writeConfig(c, tmpDir, configYaml) err = loadConfig(tmpDir) c.Assert(err, check.NotNil)