diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 55a5841..0e4345d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -240,7 +240,9 @@ jobs: id: meta uses: docker/metadata-action@v6 with: - images: ${{ vars.DOCKERHUB_USERNAME }}/sqlschemacompare + images: | + ${{ vars.DOCKERHUB_USERNAME }}/sqlschemacompare + ghcr.io/${{ github.repository }} tags: | type=semver,pattern={{version}} - name: Login to Docker Hub @@ -249,6 +251,15 @@ jobs: with: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Login to GitHub Container Registry + if: github.event_name == 'push' + uses: docker/login-action@v4 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 - name: Build and push @@ -256,6 +267,7 @@ jobs: with: context: . file: ./SQLSchemaCompare.CLI/Dockerfile + platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} push: ${{ github.event_name == 'push' }} diff --git a/Directory.Build.props b/Directory.Build.props index bd1673a..34deef1 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,7 +4,7 @@ SQL Schema Compare https://github.com/TiCodeX/SQLSchemaCompare TiCodeX - 2026.3.1 + 2026.5.1 true true enable diff --git a/SQLSchemaCompare.CLI/packages.lock.json b/SQLSchemaCompare.CLI/packages.lock.json index c362069..be855e6 100644 --- a/SQLSchemaCompare.CLI/packages.lock.json +++ b/SQLSchemaCompare.CLI/packages.lock.json @@ -415,7 +415,7 @@ "Microsoft.EntityFrameworkCore.SqlServer": "[10.0.7, )", "Microting.EntityFrameworkCore.MySql": "[10.0.7, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.1, )", - "TiCodeX.SQLSchemaCompare.Services": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Services": "[2026.5.1, )" } }, "TiCodeX.SQLSchemaCompare.Services": { @@ -424,7 +424,7 @@ "Microsoft.AspNet.WebApi.Client": "[6.0.0, )", "Microsoft.Extensions.Logging.Abstractions": "[10.0.7, )", "Newtonsoft.Json": "[13.0.4, )", - "TiCodeX.SQLSchemaCompare.Core": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Core": "[2026.5.1, )" } } }, diff --git a/SQLSchemaCompare.Infrastructure/packages.lock.json b/SQLSchemaCompare.Infrastructure/packages.lock.json index 6e6c046..f8f1de5 100644 --- a/SQLSchemaCompare.Infrastructure/packages.lock.json +++ b/SQLSchemaCompare.Infrastructure/packages.lock.json @@ -385,7 +385,7 @@ "Microsoft.AspNet.WebApi.Client": "[6.0.0, )", "Microsoft.Extensions.Logging.Abstractions": "[10.0.7, )", "Newtonsoft.Json": "[13.0.4, )", - "TiCodeX.SQLSchemaCompare.Core": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Core": "[2026.5.1, )" } } } diff --git a/SQLSchemaCompare.Test/packages.lock.json b/SQLSchemaCompare.Test/packages.lock.json index 9017bf6..35ffeed 100644 --- a/SQLSchemaCompare.Test/packages.lock.json +++ b/SQLSchemaCompare.Test/packages.lock.json @@ -785,7 +785,7 @@ "Microsoft.EntityFrameworkCore.SqlServer": "[10.0.7, )", "Microting.EntityFrameworkCore.MySql": "[10.0.7, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.1, )", - "TiCodeX.SQLSchemaCompare.Services": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Services": "[2026.5.1, )" } }, "TiCodeX.SQLSchemaCompare.Services": { @@ -794,7 +794,7 @@ "Microsoft.AspNet.WebApi.Client": "[6.0.0, )", "Microsoft.Extensions.Logging.Abstractions": "[10.0.7, )", "Newtonsoft.Json": "[13.0.4, )", - "TiCodeX.SQLSchemaCompare.Core": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Core": "[2026.5.1, )" } } } diff --git a/SQLSchemaCompare.UI/packages.lock.json b/SQLSchemaCompare.UI/packages.lock.json index 9cd88e5..fb39255 100644 --- a/SQLSchemaCompare.UI/packages.lock.json +++ b/SQLSchemaCompare.UI/packages.lock.json @@ -340,7 +340,7 @@ "Microsoft.EntityFrameworkCore.SqlServer": "[10.0.7, )", "Microting.EntityFrameworkCore.MySql": "[10.0.7, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.1, )", - "TiCodeX.SQLSchemaCompare.Services": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Services": "[2026.5.1, )" } }, "TiCodeX.SQLSchemaCompare.Services": { @@ -348,7 +348,7 @@ "dependencies": { "Microsoft.AspNet.WebApi.Client": "[6.0.0, )", "Newtonsoft.Json": "[13.0.4, )", - "TiCodeX.SQLSchemaCompare.Core": "[2026.3.1, )" + "TiCodeX.SQLSchemaCompare.Core": "[2026.5.1, )" } } }, diff --git a/SQLSchemaCompare/package.json b/SQLSchemaCompare/package.json index 139bd2a..9dae9ac 100644 --- a/SQLSchemaCompare/package.json +++ b/SQLSchemaCompare/package.json @@ -1,6 +1,6 @@ { "name": "sqlschemacompare", - "version": "2026.3.1", + "version": "2026.5.1", "license": "GPL-3.0-only", "description": "The Swiss Army Knife of Database Schema Comparison for Microsoft SQL, mySQL and PostgreSQL which runs on Windows, Linux and macOS systems.", "main": "app.js", diff --git a/docker-compose.yml b/docker-compose.yml index aa9dfda..7a59a89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,6 +47,8 @@ services: command: - | set -e + expected=$(printf "ALTER TABLE [business].[staff] ADD [last_name] [varchar](45) NOT NULL\nGO") + projectFile=$(mktemp) { echo '' @@ -69,7 +71,6 @@ services: /app/TiCodeX.SQLSchemaCompare.CLI -p $$projectFile -o $$outputFile output=$(cat $$outputFile) - expected=$(printf "ALTER TABLE [business].[staff] ADD [last_name] [varchar](45) NOT NULL\nGO") if [ "$$output" != "$$expected" ]; then echo "Output does not match expected" @@ -79,3 +80,23 @@ services: printf "%s" "$$output" | hexdump -C exit 1 fi + + outputFile=$(mktemp) + + /app/TiCodeX.SQLSchemaCompare.CLI \ + --type MicrosoftSql \ + --source 'Server=mssql;Database=sakila_source;User ID=sa;Password=Test1234!;TrustServerCertificate=True;' \ + --target 'Server=mssql;Database=sakila_target;User ID=sa;Password=Test1234!;TrustServerCertificate=True;' \ + -o $$outputFile + + output=$(cat $$outputFile) + + if [ "$$output" != "$$expected" ]; then + echo "Output does not match expected" + echo "Expected:" + printf "%s" "$$expected" | hexdump -C + echo "Actual:" + printf "%s" "$$output" | hexdump -C + exit 1 + fi +