Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
28f7fbf
Set mysqldump SSL/TLS args based on 'tls' connection URL param. (#679)
dossy Jan 8, 2026
63df39b
Handle \restrict/\unrestrict in PostgreSQL 17.6 pg_dump output (#716)
sofuture Jan 8, 2026
2b74bc5
Bump golang.org/x/crypto from 0.40.0 to 0.45.0 (#709)
dependabot[bot] Jan 8, 2026
4cae777
Bump alpine from 3.22.1 to 3.23.0 (#710)
dependabot[bot] Jan 8, 2026
1b3aaee
Bump actions/download-artifact from 5 to 6 (#698)
dependabot[bot] Jan 8, 2026
502fd9e
Bump actions/upload-artifact from 4 to 5 (#697)
dependabot[bot] Jan 8, 2026
5b28cc6
Bump actions/setup-node from 4 to 6 (#692)
dependabot[bot] Jan 8, 2026
8687dea
Bump js-yaml from 4.1.0 to 4.1.1 in /typescript (#702)
dependabot[bot] Jan 8, 2026
ddc6248
Bump actions/setup-go from 5 to 6 (#682)
dependabot[bot] Jan 8, 2026
cc4e125
Bump golang from 1.24.6 to 1.25.1 (#684)
dependabot[bot] Jan 8, 2026
ef75d6a
Bump actions/checkout from 4 to 5 (#674)
dependabot[bot] Jan 8, 2026
6190594
Bump glob from 11.0.0 to 11.1.0 in /typescript (#708)
dependabot[bot] Jan 8, 2026
e382191
Remove redundant t.Chdir() (#717)
amacneil Jan 8, 2026
adb306d
Update RELEASING.md (#718)
amacneil Jan 9, 2026
acbfa2d
v2.29.0 (#720)
amacneil Jan 9, 2026
57818f5
Bump golang toolchain in go.mod from 1.24.3 to 1.25.5 (#723)
dossy Jan 11, 2026
3f099ae
Sync go.mod toolchain with Dockerfile (#724)
amacneil Jan 11, 2026
fc613e0
Use NPM trusted publishing (#725)
amacneil Jan 12, 2026
43294f7
Remove unnecessary NODE_AUTH_TOKEN line (#726)
amacneil Jan 12, 2026
3af1181
Support --restrict-key (#727)
sofuture Jan 12, 2026
ac08b99
Handle MySQL and MariaDB specific differences for DumpSchema (#730)
dossy Jan 15, 2026
84a0d62
Postgres restrict key compatibility (#731)
sofuture Jan 15, 2026
b54ca34
Discourage Dependabot from bumping golang in Dockerfile to a release …
dossy Jan 27, 2026
151de82
Strip psql meta-commands on load (#736)
amacneil Jan 28, 2026
0e1e83a
v2.29.4 (#738)
dossy Feb 2, 2026
8c96654
Fix ESM compatibility in resolveBinary and add CI smoke test (#743)
dossy Feb 2, 2026
ee7819a
v2.29.5 (#744)
dossy Feb 2, 2026
975f861
Fix clickhouse schema dump with non-default database (#676)
Flamefork Feb 6, 2026
dd209c5
Bump js-yaml from 4.1.0 to 4.1.1 in /typescript (#741)
dependabot[bot] Feb 6, 2026
d45e021
Bump alpine from 3.23.2 to 3.23.3 (#739)
dependabot[bot] Feb 6, 2026
de56b2a
fix: lib/pq v1.11.1 broke connecting to Supavisor (#750)
dossy Feb 11, 2026
d8ce770
New release v2.30.0 (#745)
sofuture Feb 11, 2026
2d62e04
feat: issue #489 support clickhouse+http/s schemes and --driver flag …
FatherCandle Feb 11, 2026
40de0da
Bump golang from 1.25.5 to 1.25.6 (#740)
dependabot[bot] Feb 11, 2026
ba87f94
fix: extract file path from SQLite URL for shell commands (#574)
eloff Feb 12, 2026
285c25a
Add further common Postgres Unix socket URL examples (#459)
malteneuss Feb 12, 2026
422f30b
fix: comment out invalid docker ignore condition in dependabot.yml (#…
dossy Feb 12, 2026
e26a6ad
Bump golang from 1.25.6 to 1.26.0 (#753)
dependabot[bot] Feb 13, 2026
10ec839
feat: allow passing extra arguments to mysqldump/pgdump (#694)
zapotinschii Feb 16, 2026
5dc429d
bump version to v2.31.0 (#754)
sofuture Feb 18, 2026
dc4cb1b
Bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 (#756)
dependabot[bot] Feb 19, 2026
93eebf6
chore: sync with upstream amacneil/dbmate (v2.29.0 - v2.31.0)
diptanu Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ updates:
directory: /
schedule:
interval: weekly
# Ignore RC versions of golang - commented out due to invalid syntax.
# Docker ignore conditions don't support glob patterns in versions.
# See: https://github.com/dependabot/dependabot-core/issues/8677
# ignore:
# - dependency-name: golang
# versions: ["*rc*"]

- package-ecosystem: github-actions
directory: /
Expand Down
148 changes: 132 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,97 @@ on:
pull_request:

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: linux
image: ubuntu-latest
arch: 386
setup: sudo apt-get update && sudo apt-get install -qq gcc-i686-linux-gnu
env:
CC: i686-linux-gnu-gcc
CXX: i686-linux-gnu-g++
- os: linux
image: ubuntu-latest
arch: amd64
env: {}
- os: linux
image: ubuntu-latest
arch: arm
setup: sudo apt-get update && sudo apt-get install -qq gcc-arm-linux-gnueabi
env:
CC: arm-linux-gnueabi-gcc
CXX: arm-linux-gnueabi-g++
GOARM: 6
- os: linux
image: ubuntu-latest
arch: arm64
setup: sudo apt-get update && sudo apt-get install -qq gcc-aarch64-linux-gnu
env:
CC: aarch64-linux-gnu-gcc
CXX: aarch64-linux-gnu-g++
- os: macos
image: macos-latest
arch: amd64
env: {}
- os: macos
image: macos-latest
arch: arm64
env: {}
- os: windows
image: windows-latest
arch: amd64
setup: choco install sqlite
env: {}

name: Build (${{ matrix.os }}/${{ matrix.arch }})
runs-on: ${{ matrix.image }}
env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v6

- uses: actions/setup-go@v6
with:
go-version-file: go.mod

- name: Setup environment
run: ${{ matrix.setup }}

- run: go mod download

- run: make build ls
env:
GOARCH: ${{ matrix.arch }}
OUTPUT: dbmate-${{ matrix.os }}-${{ matrix.arch }}

- run: make test
if: ${{ matrix.arch == 'amd64' }}
env:
GOARCH: ${{ matrix.arch }}

- run: dist/dbmate-${{ matrix.os }}-${{ matrix.arch }} --help
if: ${{ matrix.arch == 'amd64' }}

- name: Upload build artifacts
uses: actions/upload-artifact@v6
with:
name: dbmate-${{ matrix.os }}-${{ matrix.arch }}
path: dist/dbmate-*

- name: Publish binaries
uses: softprops/action-gh-release@v2
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
with:
files: dist/dbmate-*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

docker:
name: Docker Test (linux/amd64)
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -52,6 +137,13 @@ jobs:
- name: Run make test
run: docker compose run --rm dev make test

- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
Expand All @@ -66,6 +158,7 @@ jobs:
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
with:
images: |
${{ github.repository }}
ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
Expand All @@ -84,20 +177,43 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

dependabot:
name: Dependabot
npm:
name: NPM
runs-on: ubuntu-latest
needs: build
permissions:
pull-requests: write
if: github.event.pull_request.user.login == 'dependabot[bot]'
contents: read
id-token: write

steps:
- name: Automatically approve dependabot PRs
uses: octokit/request-action@v2.x
- uses: actions/checkout@v6

- run: corepack enable

- uses: actions/setup-node@v6
with:
route: POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews
owner: ${{ github.event.repository.owner.login }}
repo: ${{ github.event.repository.name }}
pull_number: ${{ github.event.pull_request.number }}
event: APPROVE
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
node-version: 20
cache: npm
cache-dependency-path: typescript/package-lock.json

- uses: actions/download-artifact@v7
with:
path: dist

- run: find dist

- run: npm ci
working-directory: typescript

- run: npm run lint:ci
working-directory: typescript

- run: npm run generate
working-directory: typescript

- run: npm test
working-directory: typescript

- run: npm run publish
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
working-directory: typescript
22 changes: 22 additions & 0 deletions .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Dependabot

on:
pull_request:

jobs:
approve:
runs-on: ubuntu-latest
permissions:
pull-requests: write
if: github.event.pull_request.user.login == 'dependabot[bot]'
steps:
- name: Approve Dependabot PR
uses: octokit/request-action@v2.x
with:
route: POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews
owner: ${{ github.event.repository.owner.login }}
repo: ${{ github.event.repository.name }}
pull_number: ${{ github.event.pull_request.number }}
event: APPROVE
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Release
name: Post Release

on:
push:
tags: ["v*"]

jobs:
homebrew:
name: Bump Homebrew formula
name: Bump Homebrew Formula
runs-on: ubuntu-latest
steps:
- uses: mislav/bump-homebrew-formula-action@v3
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/sync-go-toolchain.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Sync Go Toolchain

on:
pull_request:
paths:
- "Dockerfile"

jobs:
sync:
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.head_ref }}

- uses: actions/setup-go@v6
with:
go-version-file: go.mod

- name: Extract Go version from Dockerfile
id: dockerfile
run: |
VERSION=$(sed -n 's/^FROM golang:\([0-9.]*\).*/\1/p' Dockerfile | head -1)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Dockerfile Go version: $VERSION"

- name: Extract current toolchain from go.mod
id: gomod
run: |
TOOLCHAIN=$(go mod edit -json | jq -r '.Toolchain // empty')
echo "toolchain=$TOOLCHAIN" >> $GITHUB_OUTPUT
echo "Current go.mod toolchain: $TOOLCHAIN"

- name: Update go.mod toolchain if needed
if: steps.gomod.outputs.toolchain != format('go{0}', steps.dockerfile.outputs.version)
env:
NEW_VERSION: ${{ steps.dockerfile.outputs.version }}
run: |
echo "Updating toolchain to go${NEW_VERSION}"
go mod edit -toolchain="go${NEW_VERSION}"

- name: Commit and push changes
if: steps.gomod.outputs.toolchain != format('go{0}', steps.dockerfile.outputs.version)
env:
NEW_VERSION: ${{ steps.dockerfile.outputs.version }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add go.mod
git commit -m "Sync go.mod toolchain with Dockerfile (go${NEW_VERSION})"
git push
1 change: 1 addition & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RUN apt-get update \

# golangci-lint
RUN curl -fsSL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \
| sh -s -- -b /usr/local/bin v2.10.1
| sh -s -- -b /usr/local/bin v2.9.0

# download modules
COPY go.* /src/
Expand Down
Loading