diff --git a/.github/workflows/all_tests.yml b/.github/workflows/all_tests.yml index d2900b13..20854d4a 100644 --- a/.github/workflows/all_tests.yml +++ b/.github/workflows/all_tests.yml @@ -1,25 +1,66 @@ +name: CI + on: [push, pull_request] jobs: - build: - name: Check - runs-on: ubuntu-latest - env: - GO111MODULE: on - - steps: - - - name: Install libraries - run: | - sudo apt-get update - sudo apt-get install -y libncurses5 libaio1 libnuma1 bash-completion - - name: Set up Go 1.x - uses: actions/setup-go@v2 - with: - go-version: ^1.18 + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-go@v5 + with: + go-version: '1.22' + - name: golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: latest + - name: govulncheck + run: | + go install golang.org/x/vuln/cmd/govulncheck@latest + govulncheck ./... + - name: Copyright check + run: ./scripts/sanity_check.sh copyright - - name: Check out code into the Go module directory - uses: actions/checkout@v2 + test: + name: Test (Go ${{ matrix.go-version }}, ${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + go-version: ['1.22', '1.23'] + os: [ubuntu-latest, macos-latest] + env: + GO111MODULE: on + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + - name: Install libraries (Linux) + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y libncurses5 libaio1 libnuma1 bash-completion + - name: Unit tests + run: ./test/go-unit-tests.sh - - name: tests - run: ./scripts/ci.sh + build: + name: Build + runs-on: ubuntu-latest + needs: [lint, test] + env: + GO111MODULE: on + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: '1.22' + - name: Build + run: ./scripts/build.sh linux + - name: Verify executable + run: | + version=$(cat common/VERSION) + test -f "dbdeployer-${version}.linux" || exit 1 diff --git a/.golangci.yml b/.golangci.yml index 9889acba..bca4f140 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -8,6 +8,7 @@ linters: - ineffassign - staticcheck - unused + - gosec disable: - depguard diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 3c7cac1b..9722e5ce 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -1,10 +1,9 @@ -# This is an example .goreleaser.yml file with some sensible defaults. -# Make sure to check the documentation at https://goreleaser.com -# # goreleaser release --skip-publish --snapshot +version: 2 + before: hooks: - # You may remove this if you don't use go modules. - go mod tidy + builds: - env: - CGO_ENABLED=0 @@ -14,18 +13,22 @@ builds: goarch: - amd64 - arm64 + archives: - - replacements: - darwin: Darwin - linux: Linux - amd64: x86_64 + - formats: ['tar.gz'] + name_template: >- + {{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }} + checksum: name_template: 'checksums.txt' + snapshot: - name_template: "{{ incpatch .Version }}-next" + version_template: "{{ incpatch .Version }}-next" + changelog: sort: asc filters: exclude: - '^docs:' - '^test:' + - '^chore:' diff --git a/mkreadme/readme_template.md b/mkreadme/readme_template.md index 7bcd99da..1f153e71 100644 --- a/mkreadme/readme_template.md +++ b/mkreadme/readme_template.md @@ -1,9 +1,21 @@ -[DBdeployer](https://github.com/datacharmer/dbdeployer) is a tool that deploys MySQL database servers easily. -This is a port of [MySQL-Sandbox](https://github.com/datacharmer/mysql-sandbox), originally written in Perl, and re-designed from the ground up in [Go](https://golang.org). See the [features comparison](https://github.com/datacharmer/dbdeployer/blob/master/docs/features.md) for more detail. +[DBdeployer](https://github.com/ProxySQL/dbdeployer) is a tool that deploys MySQL database servers easily. +This is a port of [MySQL-Sandbox](https://github.com/datacharmer/mysql-sandbox), originally written in Perl, and re-designed from the ground up in [Go](https://golang.org). See the [features comparison](https://github.com/ProxySQL/dbdeployer/blob/master/docs/features.md) for more detail. + +## New Maintainer + +As of 2026, dbdeployer is actively maintained by the [ProxySQL](https://github.com/ProxySQL) team, with the blessing of the original creator [Giuseppe Maxia](https://github.com/datacharmer). We are grateful for Giuseppe's years of work on this project. + +**Roadmap:** +- Modern MySQL support (8.4 LTS, 9.x Innovation releases) +- ProxySQL and Orchestrator integration as deployment providers +- Provider-based architecture for extensibility +- PostgreSQL support (long-term) + +See the [Phase 1 milestone](https://github.com/ProxySQL/dbdeployer/milestone/1) for current progress. Documentation updated for version {{.Version}} ({{.Date}}) -![Build Status](https://github.com/datacharmer/dbdeployer/workflows/.github/workflows/all_tests.yml/badge.svg) +![Build Status](https://github.com/ProxySQL/dbdeployer/workflows/.github/workflows/all_tests.yml/badge.svg) # Table of contents