Skip to content
Merged
Changes from all commits
Commits
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
57 changes: 10 additions & 47 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,13 @@ jobs:
echo "Testing with PostgreSQL 18"
PGSCHEMA_POSTGRES_VERSION=18 go test -v ./...

# Build Linux binaries using native Go cross-compilation
build-linux:
# Build binaries using native Go cross-compilation
build-binaries:
needs: test
runs-on: ubuntu-latest
strategy:
matrix:
os: [linux, darwin]
arch: [amd64, arm64]
steps:
- name: Checkout
Expand All @@ -82,57 +83,18 @@ jobs:

- name: Build binary
run: |
GOOS=linux GOARCH=${{ matrix.arch }} go build \
GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} go build \
-ldflags "-X github.com/pgschema/pgschema/cmd.GitCommit=${{ steps.build_info.outputs.GIT_COMMIT }} -X 'github.com/pgschema/pgschema/cmd.BuildDate=${{ steps.build_info.outputs.BUILD_DATE }}'" \
-o pgschema-${{ steps.version.outputs.version }}-linux-${{ matrix.arch }} .
-o pgschema-${{ steps.version.outputs.version }}-${{ matrix.os }}-${{ matrix.arch }} .

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pgschema-${{ steps.version.outputs.version }}-linux-${{ matrix.arch }}
path: pgschema-${{ steps.version.outputs.version }}-linux-${{ matrix.arch }}

# Build macOS binaries (native build works fine)
build-macos:
needs: test
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.24"

- name: Read version
id: version
run: echo "version=$(cat internal/version/VERSION)" >> $GITHUB_OUTPUT

- name: Run tests (short)
run: go test -short -v ./...

- name: Build binary
run: |
# Get git info
GIT_COMMIT=$(git rev-parse --short HEAD)
BUILD_DATE=$(date -u +"%Y-%m-%d %H:%M:%S")

# Build for macOS ARM64
GOOS=darwin GOARCH=arm64 go build \
-ldflags "-X github.com/pgschema/pgschema/cmd.GitCommit=${GIT_COMMIT} -X 'github.com/pgschema/pgschema/cmd.BuildDate=${BUILD_DATE}'" \
-o pgschema-${{ steps.version.outputs.version }}-darwin-arm64 .

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pgschema-${{ steps.version.outputs.version }}-darwin-arm64
path: pgschema-${{ steps.version.outputs.version }}-darwin-arm64
name: pgschema-${{ steps.version.outputs.version }}-${{ matrix.os }}-${{ matrix.arch }}
path: pgschema-${{ steps.version.outputs.version }}-${{ matrix.os }}-${{ matrix.arch }}

packages:
needs: build-linux
needs: build-binaries
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down Expand Up @@ -215,7 +177,7 @@ jobs:
path: ./dist/*.rpm

release:
needs: [build-linux, build-macos, packages]
needs: [build-binaries, build-macos, packages]
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -241,6 +203,7 @@ jobs:
binaries/pgschema-${{ steps.version.outputs.version }}-linux-amd64/pgschema-${{ steps.version.outputs.version }}-linux-amd64
binaries/pgschema-${{ steps.version.outputs.version }}-linux-arm64/pgschema-${{ steps.version.outputs.version }}-linux-arm64
binaries/pgschema-${{ steps.version.outputs.version }}-darwin-arm64/pgschema-${{ steps.version.outputs.version }}-darwin-arm64
binaries/pgschema-${{ steps.version.outputs.version }}-darwin-amd64/pgschema-${{ steps.version.outputs.version }}-darwin-amd64
binaries/pgschema-deb-amd64/*.deb
binaries/pgschema-deb-arm64/*.deb
binaries/pgschema-rpm-amd64/*.rpm
Expand Down