fix(ci): resolve Python setup errors and update workflow actions
Some checks failed
Integration Tests / integration-test (push) Failing after -25m58s

- Update integration workflow actions to latest versions (v3->v4, v4->v5)
- Fix Python version from '3.x' to '3.12' to resolve permission errors
- Update Go version from 1.21 to 1.25 to match go.mod
- Add Go module caching for faster builds
- Add release workflow for multi-platform binary builds
- Add Makefile release target for automated tag creation
This commit is contained in:
2026-01-03 00:31:42 +02:00
parent d1598238b2
commit b74e20760e
3 changed files with 148 additions and 5 deletions

View File

@@ -14,17 +14,18 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: '1.25'
cache: true
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'
python-version: '3.12'
- name: Install podman-compose
run: pip install podman-compose

117
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,117 @@
name: Release
run-name: "Making Release"
on:
push:
tags:
- 'v*.*.*'
jobs:
build-and-release:
name: Build and Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true
- name: Get version from tag
id: get_version
run: |
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
echo "Version: ${GITHUB_REF#refs/tags/}"
- name: Build binaries for multiple platforms
run: |
mkdir -p dist
# Linux AMD64
GOOS=linux GOARCH=amd64 go build -o dist/pgsql-broker-linux-amd64 -ldflags "-X main.version=${{ steps.get_version.outputs.VERSION }}" ./cmd/broker
# Linux ARM64
GOOS=linux GOARCH=arm64 go build -o dist/pgsql-broker-linux-arm64 -ldflags "-X main.version=${{ steps.get_version.outputs.VERSION }}" ./cmd/broker
# macOS AMD64
GOOS=darwin GOARCH=amd64 go build -o dist/pgsql-broker-darwin-amd64 -ldflags "-X main.version=${{ steps.get_version.outputs.VERSION }}" ./cmd/broker
# macOS ARM64 (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o dist/pgsql-broker-darwin-arm64 -ldflags "-X main.version=${{ steps.get_version.outputs.VERSION }}" ./cmd/broker
# Windows AMD64
GOOS=windows GOARCH=amd64 go build -o dist/pgsql-broker-windows-amd64.exe -ldflags "-X main.version=${{ steps.get_version.outputs.VERSION }}" ./cmd/broker
# Create checksums
cd dist
sha256sum * > checksums.txt
cd ..
- name: Generate release notes
id: release_notes
run: |
# Get the previous tag
previous_tag=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
if [ -z "$previous_tag" ]; then
# No previous tag, get all commits
commits=$(git log --pretty=format:"- %s (%h)" --no-merges)
else
# Get commits since the previous tag
commits=$(git log "${previous_tag}..HEAD" --pretty=format:"- %s (%h)" --no-merges)
fi
# Create release notes
cat > release_notes.md << EOF
# Release ${{ steps.get_version.outputs.VERSION }}
## Changes
${commits}
## Installation
Download the appropriate binary for your platform:
- **Linux (AMD64)**: \`pgsql-broker-linux-amd64\`
- **Linux (ARM64)**: \`pgsql-broker-linux-arm64\`
- **macOS (Intel)**: \`pgsql-broker-darwin-amd64\`
- **macOS (Apple Silicon)**: \`pgsql-broker-darwin-arm64\`
- **Windows (AMD64)**: \`pgsql-broker-windows-amd64.exe\`
Make the binary executable (Linux/macOS):
\`\`\`bash
chmod +x pgsql-broker-*
\`\`\`
Verify the download with the provided checksums.
EOF
- name: Create Release
uses: softprops/action-gh-release@v1
with:
body_path: release_notes.md
files: |
dist/pgsql-broker-linux-amd64
dist/pgsql-broker-linux-arm64
dist/pgsql-broker-darwin-amd64
dist/pgsql-broker-darwin-arm64
dist/pgsql-broker-windows-amd64.exe
dist/checksums.txt
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Summary
run: |
echo "Release ${{ steps.get_version.outputs.VERSION }} created successfully!"
echo "Binaries built for:"
echo " - Linux (amd64, arm64)"
echo " - macOS (amd64, arm64)"
echo " - Windows (amd64)"

View File

@@ -172,6 +172,31 @@ docker-down: ## Stop PostgreSQL test database
fi
@echo "PostgreSQL stopped"
release: ## Create and push a new release tag (auto-increments patch version)
@echo "Creating new release..."
@latest_tag=$$(git describe --tags --abbrev=0 2>/dev/null || echo ""); \
if [ -z "$$latest_tag" ]; then \
version="v1.0.0"; \
echo "No existing tags found. Creating first release: $$version"; \
commit_logs=$$(git log --pretty=format:"- %s" --no-merges); \
else \
echo "Latest tag: $$latest_tag"; \
version_number=$${latest_tag#v}; \
IFS='.' read -r major minor patch <<< "$$version_number"; \
patch=$$((patch + 1)); \
version="v$$major.$$minor.$$patch"; \
echo "Creating new release: $$version"; \
commit_logs=$$(git log "$${latest_tag}..HEAD" --pretty=format:"- %s" --no-merges); \
fi; \
if [ -z "$$commit_logs" ]; then \
tag_message="Release $$version"; \
else \
tag_message="Release $$version\n\n$$commit_logs"; \
fi; \
git tag -a "$$version" -m "$$tag_message"; \
git push origin "$$version"; \
echo "Tag $$version created and pushed to remote repository."
help: ## Show this help message
@echo "Usage: make [target]"