Compare commits

...

6 Commits

Author SHA1 Message Date
Eric Coissac
250d616129 Mise à jour des workflows de release pour les nouvelles versions d'OS
Mise à jour du workflow de release pour utiliser ubuntu-24.04-arm au lieu de ubuntu-latest pour ARM64, et macos-15-intel au lieu de macos-latest pour macOS. Suppression de la compilation croisée pour ARM64 et ajustement de l'installation des outils de build pour macOS.
2026-02-06 09:34:41 +01:00
coissac
fbf816d219 Merge pull request #76 from metabarcoding/push-tzpmmnnxkvxx
Push tzpmmnnxkvxx
2026-02-06 09:09:05 +01:00
Eric Coissac
7f0133a196 Bump version to 4.4.8
Update version from 4.4.7 to 4.4.8 in version.txt and _Version variable.
2026-02-06 09:08:35 +01:00
Eric Coissac
f798f22434 Add cross-platform binary builds and release workflow improvements
This commit introduces a new build job that compiles binaries for multiple platforms (Linux, macOS) and architectures (amd64, arm64). It also refactors the release process to download pre-built artifacts and simplify the release directory preparation. The workflow now uses matrix strategy for building binaries and downloads all artifacts for the final release, removing the previous manual build steps for each platform.
2026-02-06 09:08:33 +01:00
coissac
248bc9f672 Merge pull request #75 from metabarcoding/push-mxxuykppzlpw
Push mxxuykppzlpw
2026-02-05 18:11:12 +01:00
Eric Coissac
7a7db703f1 Bump version to 4.4.7
Update version from 4.4.6 to 4.4.7 in version.txt and pkg/obioptions/version.go
2026-02-05 18:10:45 +01:00
3 changed files with 73 additions and 75 deletions

View File

@@ -22,15 +22,34 @@ jobs:
- name: Run tests
run: make githubtests
# Then create release only if tests pass
create-release:
# Build binaries for each platform
build:
needs: test
runs-on: ubuntu-latest
strategy:
matrix:
include:
- os: ubuntu-latest
goos: linux
goarch: amd64
output_name: linux_amd64
- os: ubuntu-24.04-arm
goos: linux
goarch: arm64
output_name: linux_arm64
- os: macos-15-intel
goos: darwin
goarch: amd64
output_name: darwin_amd64
- os: macos-latest
goos: darwin
goarch: arm64
output_name: darwin_arm64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v5
@@ -42,77 +61,61 @@ jobs:
run: |
TAG=${GITHUB_REF#refs/tags/Release_}
echo "version=$TAG" >> $GITHUB_OUTPUT
echo "tag_name=Release_$TAG" >> $GITHUB_OUTPUT
- name: Build binaries for multiple platforms
- name: Install build tools (macOS)
if: runner.os == 'macOS'
run: |
# Ensure Xcode Command Line Tools are installed
xcode-select --install 2>/dev/null || true
xcode-select -p
- name: Build binaries
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
VERSION: ${{ steps.get_version.outputs.version }}
run: |
make obitools
mkdir -p artifacts
cd build
for binary in *; do
tar -czf ../artifacts/${binary}_${VERSION}_${{ matrix.output_name }}.tar.gz ${binary}
done
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.output_name }}
path: artifacts/*
# Create the release
create-release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Extract version from tag
id: get_version
run: |
TAG=${GITHUB_REF#refs/tags/Release_}
echo "version=$TAG" >> $GITHUB_OUTPUT
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: release-artifacts
- name: Prepare release directory
run: |
mkdir -p release
# Build for Linux AMD64
echo "Building for Linux AMD64..."
GOOS=linux GOARCH=amd64 make obitools
cd build
for binary in *; do
tar -czf ../release/${binary}_${VERSION}_linux_amd64.tar.gz ${binary}
done
cd ..
rm -rf build
# Build for Linux ARM64
echo "Building for Linux ARM64..."
GOOS=linux GOARCH=arm64 make obitools
cd build
for binary in *; do
tar -czf ../release/${binary}_${VERSION}_linux_arm64.tar.gz ${binary}
done
cd ..
rm -rf build
# Build for macOS AMD64 (Intel)
echo "Building for macOS AMD64..."
GOOS=darwin GOARCH=amd64 make obitools
cd build
for binary in *; do
tar -czf ../release/${binary}_${VERSION}_darwin_amd64.tar.gz ${binary}
done
cd ..
rm -rf build
# Build for macOS ARM64 (Apple Silicon)
echo "Building for macOS ARM64..."
GOOS=darwin GOARCH=arm64 make obitools
cd build
for binary in *; do
tar -czf ../release/${binary}_${VERSION}_darwin_arm64.tar.gz ${binary}
done
cd ..
rm -rf build
# Build for Windows AMD64
echo "Building for Windows AMD64..."
GOOS=windows GOARCH=amd64 make obitools
cd build
for binary in *; do
# Windows binaries have .exe extension
if [ -f "${binary}.exe" ]; then
zip ../release/${binary}_${VERSION}_windows_amd64.zip ${binary}.exe
else
zip ../release/${binary}_${VERSION}_windows_amd64.zip ${binary}
fi
done
cd ..
echo "Built archives:"
find release-artifacts -type f -name "*.tar.gz" -exec cp {} release/ \;
ls -lh release/
- name: Generate Release Notes
id: release_notes
env:
VERSION: ${{ steps.get_version.outputs.version }}
run: |
@@ -157,11 +160,6 @@ jobs:
echo "tar -xzf <tool>_${VERSION}_darwin_arm64.tar.gz" >> release_notes.md
echo '```' >> release_notes.md
echo "" >> release_notes.md
echo "### Windows (AMD64)" >> release_notes.md
echo '```powershell' >> release_notes.md
echo "Expand-Archive <tool>_${VERSION}_windows_amd64.zip" >> release_notes.md
echo '```' >> release_notes.md
echo "" >> release_notes.md
echo "Available tools: Replace \`<tool>\` with one of the obitools commands." >> release_notes.md
- name: Create GitHub Release

View File

@@ -3,7 +3,7 @@ package obioptions
// Version is automatically updated by the Makefile from version.txt
// The patch number (third digit) is incremented on each push to the repository
var _Version = "Release 4.4.6"
var _Version = "Release 4.4.8"
// Version returns the version of the obitools package.
//

View File

@@ -1 +1 @@
4.4.6
4.4.8