diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b1cf452..17262da 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -15,4 +15,3 @@ If you find mistakes in the documentation, please submit a fix to the [new-issue]: https://github.com/benbjohnson/litestream/issues/new [docs]: https://github.com/benbjohnson/litestream.io - diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml index 4179b57..7cc4b74 100644 --- a/.github/workflows/commit.yml +++ b/.github/workflows/commit.yml @@ -1,14 +1,44 @@ -on: push +on: + push: + pull_request: + types: + - opened + - synchronize + - reopened +env: + GO_VERSION: "1.21" + +name: Commit jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + cache: true + + - run: | + go install golang.org/x/tools/cmd/goimports@latest + go install honnef.co/go/tools/cmd/staticcheck@latest + export PATH="$HOME/go/bin:$PATH" + + - uses: pre-commit/action@v3.0.0 + build: name: Build & Unit Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-go@v2 + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v4 with: - go-version: '1.21' + go-version: ${{ env.GO_VERSION }} + - uses: actions/cache@v2 with: path: ~/go/pkg/mod @@ -36,7 +66,7 @@ jobs: # steps: # - uses: actions/checkout@v2 # - uses: actions/setup-go@v2 -# with: +# with: # go-version: '1.20' # - uses: actions/cache@v2 # with: diff --git a/.github/workflows/release.docker.yml b/.github/workflows/release.docker.yml index bf49245..dcc92a3 100644 --- a/.github/workflows/release.docker.yml +++ b/.github/workflows/release.docker.yml @@ -2,13 +2,13 @@ on: release: types: - published - pull_request: - types: - - opened - - synchronize - - reopened - branches-ignore: - - "dependabot/**" +# pull_request: +# types: +# - opened +# - synchronize +# - reopened +# branches-ignore: +# - "dependabot/**" name: Release (Docker) jobs: @@ -27,7 +27,7 @@ jobs: with: username: benbjohnson password: ${{ secrets.DOCKERHUB_TOKEN }} - + - id: meta uses: docker/metadata-action@v3 with: @@ -39,7 +39,7 @@ jobs: type=sha,format=long type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} - + - uses: docker/build-push-action@v2 with: context: . @@ -48,4 +48,4 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | - LITESTREAM_VERSION=${{ env.VERSION }} \ No newline at end of file + LITESTREAM_VERSION=${{ env.VERSION }} diff --git a/.github/workflows/release.linux.yml b/.github/workflows/release.linux.yml index 73f06e1..3c4ec9a 100644 --- a/.github/workflows/release.linux.yml +++ b/.github/workflows/release.linux.yml @@ -40,7 +40,7 @@ jobs: - name: Install cross-compilers run: | - sudo apt-get update + sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi - name: Install nfpm @@ -55,10 +55,10 @@ jobs: cp etc/litestream.yml etc/litestream.service dist cat etc/nfpm.yml | LITESTREAM_VERSION=${{ steps.release.outputs.tag_name }} envsubst > dist/nfpm.yml CGO_ENABLED=1 go build -ldflags "-s -w -extldflags "-static" -X 'main.Version=${{ steps.release.outputs.tag_name }}'" -tags osusergo,netgo,sqlite_omit_load_extension -o dist/litestream ./cmd/litestream - + cd dist tar -czvf litestream-${{ steps.release.outputs.tag_name }}-${{ env.GOOS }}-${{ env.GOARCH }}${{ env.GOARM }}.tar.gz litestream - ../nfpm pkg --config nfpm.yml --packager deb --target litestream-${{ steps.release.outputs.tag_name }}-${{ env.GOOS }}-${{ env.GOARCH }}${{ env.GOARM }}.deb + ../nfpm pkg --config nfpm.yml --packager deb --target litestream-${{ steps.release.outputs.tag_name }}-${{ env.GOOS }}-${{ env.GOARCH }}${{ env.GOARM }}.deb - name: Upload release tarball uses: actions/upload-release-asset@v1.0.2 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..5004215 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,20 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.1.0 + hooks: + - id: trailing-whitespace + exclude_types: [markdown] + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + + - repo: https://github.com/tekwizely/pre-commit-golang + rev: v1.0.0-beta.5 + hooks: + - id: go-imports-repo + args: + - "-local" + - "github.com/benbjohnson/litestrem" + - "-w" + - id: go-vet-repo-mod +# - id: go-staticcheck-repo-mod diff --git a/LICENSE b/LICENSE index 7a4a3ea..d645695 100644 --- a/LICENSE +++ b/LICENSE @@ -199,4 +199,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file + limitations under the License. diff --git a/README.md b/README.md index 84d6e4e..ded66ad 100644 --- a/README.md +++ b/README.md @@ -58,4 +58,3 @@ If you find mistakes in the documentation, please submit a fix to the [new-issue]: https://github.com/benbjohnson/litestream/issues/new [docs]: https://github.com/benbjohnson/litestream.io - diff --git a/cmd/litestream/generations.go b/cmd/litestream/generations.go index 56754e2..2b0e177 100644 --- a/cmd/litestream/generations.go +++ b/cmd/litestream/generations.go @@ -121,7 +121,7 @@ cover. Usage: litestream generations [arguments] DB_PATH - + litestream generations [arguments] REPLICA_URL Arguments: diff --git a/cmd/litestream/main_windows.go b/cmd/litestream/main_windows.go index 0f6c1c2..be7e7dd 100644 --- a/cmd/litestream/main_windows.go +++ b/cmd/litestream/main_windows.go @@ -5,6 +5,8 @@ package main import ( "context" "io" + "log" + "log/slog" "os" "os/signal" diff --git a/cmd/litestream/replicate.go b/cmd/litestream/replicate.go index 988407c..7c9b4f3 100644 --- a/cmd/litestream/replicate.go +++ b/cmd/litestream/replicate.go @@ -181,7 +181,7 @@ func (c *ReplicateCommand) Close() (err error) { // Usage prints the help screen to STDOUT. func (c *ReplicateCommand) Usage() { fmt.Printf(` -The replicate command starts a server to monitor & replicate databases. +The replicate command starts a server to monitor & replicate databases. You can specify your database & replicas in a configuration file or you can replicate a single database file by specifying its path and its replicas in the command line arguments. diff --git a/etc/litestream.wxs b/etc/litestream.wxs index 034c966..5246cb0 100644 --- a/etc/litestream.wxs +++ b/etc/litestream.wxs @@ -26,9 +26,9 @@ Description="Litestream $(var.Version) installer" Compressed="yes" /> - + - +