diff --git a/.circleci/config.yml b/.circleci/config.yml index 2ba2868e6..08b615b3b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ fast-checkout: &fast-checkout attach_workspace: at: . jobs: - build: + setup: <<: *defaults steps: - checkout @@ -30,6 +30,14 @@ jobs: - run: gometalinter --install - run: go get github.com/remyoudompheng/go-misc/deadcode - run: make gometalinter + test-build-arm: + <<: *defaults + steps: + - *fast-checkout + - run: make build GOOS=linux GOARCH=arm GOARM=5 + - run: make build GOOS=linux GOARCH=arm GOARM=6 + - run: make build GOOS=linux GOARCH=arm GOARM=7 + - run: make build GOOS=linux GOARCH=arm64 test-golang-1.11: &base-test <<: *defaults steps: @@ -100,25 +108,28 @@ workflows: version: 2 test: jobs: - - build + - setup - linter: requires: - - build + - setup + - test-build-arm: + requires: + - setup - test-golang-1.11: requires: - - build + - setup - test-golang-1.11-race: requires: - - build + - setup - test-golang-1.11-386: requires: - - build + - setup - test-golang-1.10: requires: - - build + - setup - cluster-tests: requires: - - build + - setup - prerelease: requires: - linter diff --git a/server/server.go b/server/server.go index c6b69a7f5..c80f8268e 100644 --- a/server/server.go +++ b/server/server.go @@ -174,30 +174,6 @@ func (m *Command) Wait() error { } } -// setupLogger sets up the logger based on the configuration. -func (m *Command) setupLogger() error { - if m.Config.LogPath == "" { - m.logOutput = m.Stderr - } else { - f, err := os.OpenFile(m.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600) - if err != nil { - return errors.Wrap(err, "opening file") - } - m.logOutput = f - err = syscall.Dup2(int(f.Fd()), int(os.Stderr.Fd())) - if err != nil { - return errors.Wrap(err, "dup2ing stderr onto logfile") - } - } - - if m.Config.Verbose { - m.logger = logger.NewVerboseLogger(m.logOutput) - } else { - m.logger = logger.NewStandardLogger(m.logOutput) - } - return nil -} - // SetupServer uses the cluster configuration to set up this server. func (m *Command) SetupServer() error { err := m.setupLogger() diff --git a/server/setup_logger.go b/server/setup_logger.go new file mode 100644 index 000000000..06d61eced --- /dev/null +++ b/server/setup_logger.go @@ -0,0 +1,35 @@ +// +build !arm64 + +package server + +import ( + "os" + "syscall" + + "github.com/pilosa/pilosa/logger" + "github.com/pkg/errors" +) + +// setupLogger sets up the logger based on the configuration. +func (m *Command) setupLogger() error { + if m.Config.LogPath == "" { + m.logOutput = m.Stderr + } else { + f, err := os.OpenFile(m.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600) + if err != nil { + return errors.Wrap(err, "opening file") + } + m.logOutput = f + err = syscall.Dup2(int(f.Fd()), int(os.Stderr.Fd())) + if err != nil { + return errors.Wrap(err, "dup2ing stderr onto logfile") + } + } + + if m.Config.Verbose { + m.logger = logger.NewVerboseLogger(m.logOutput) + } else { + m.logger = logger.NewStandardLogger(m.logOutput) + } + return nil +} diff --git a/server/setup_logger_arm64.go b/server/setup_logger_arm64.go new file mode 100644 index 000000000..dd6718741 --- /dev/null +++ b/server/setup_logger_arm64.go @@ -0,0 +1,33 @@ +package server + +import ( + "os" + "syscall" + + "github.com/pilosa/pilosa/logger" + "github.com/pkg/errors" +) + +// setupLogger sets up the logger based on the configuration. +func (m *Command) setupLogger() error { + if m.Config.LogPath == "" { + m.logOutput = m.Stderr + } else { + f, err := os.OpenFile(m.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600) + if err != nil { + return errors.Wrap(err, "opening file") + } + m.logOutput = f + err = syscall.Dup3(int(f.Fd()), int(os.Stderr.Fd()), 0) + if err != nil { + return errors.Wrap(err, "dup2ing stderr onto logfile") + } + } + + if m.Config.Verbose { + m.logger = logger.NewVerboseLogger(m.logOutput) + } else { + m.logger = logger.NewStandardLogger(m.logOutput) + } + return nil +}