Skip to content

version bump

version bump #41

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*.*' # Adjust this pattern based on your tagging
permissions:
contents: write
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Install fyne-cross
run: go install github.com/fyne-io/fyne-cross@latest
- name: Cross-compile for Linux
run: fyne-cross linux
- name: Upload Linux artifact
uses: actions/upload-artifact@v4
with:
name: linux-build
path: fyne-cross/bin/linux-amd64
build-windows:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Install fyne-cross
run: go install github.com/fyne-io/fyne-cross@latest
- name: Cross-compile for Windows
run: fyne-cross windows
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: windows-build
path: fyne-cross/bin/windows-amd64
build-mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Compile for MacOS
run: |
GOOS=darwin GOARCH=arm64 go build -o SoundscapeSync_arm64
CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build -o SoundscapeSync_amd64
lipo -create -output SoundscapeSync SoundscapeSync_amd64 SoundscapeSync_arm64
mkdir -p SoundscapeSync.app/Contents/MacOS
mv SoundscapeSync SoundscapeSync.app/Contents/MacOS/SoundscapeSync
echo '<?xml version="1.0" encoding="UTF-8"?>' > SoundscapeSync.app/Contents/Info.plist
echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> SoundscapeSync.app/Contents/Info.plist
echo '<plist version="1.0">' >> SoundscapeSync.app/Contents/Info.plist
echo '<dict>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <key>CFBundleName</key>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <string>SoundscapeSync</string>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <key>CFBundleVersion</key>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <string>1.0</string>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <key>CFBundleIdentifier</key>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <string>com.cloonar.soundscape-sync</string>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <key>Executable</key>' >> SoundscapeSync.app/Contents/Info.plist
echo ' <string>SoundscapeSync</string>' >> SoundscapeSync.app/Contents/Info.plist
echo '</dict>' >> SoundscapeSync.app/Contents/Info.plist
echo '</plist>' >> SoundscapeSync.app/Contents/Info.plist
chmod +x SoundscapeSync.app/Contents/MacOS/SoundscapeSync
zip -r SoundscapeSync.app.zip SoundscapeSync.app
- name: Upload macOS artifact
uses: actions/upload-artifact@v4
with:
name: macos-build
path: SoundscapeSync.app.zip
create-release:
runs-on: ubuntu-latest
needs: [build-linux, build-windows, build-mac]
steps:
- name: Generate Changelog
id: changelog
uses: requarks/changelog-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
release_name: Release ${{ github.ref_name }}
body: ${{ steps.changelog.outputs.changes }}
draft: false
prerelease: true
# - uses: actions/download-artifact@v4
# with:
# name: linux-build
# - name: Prepare DEB package
# run: |
# mkdir -p .debpkg/DEBIAN
# echo "Package: SoundscapeSync" > .debpkg/DEBIAN/control
# echo "Version: ${{ github.event.inputs.version }}" >> .debpkg/DEBIAN/control
# echo "Architecture: amd64" >> .debpkg/DEBIAN/control
# echo "Maintainer: Dominik Polakovics <[email protected]>" >> .debpkg/DEBIAN/control
# mkdir -p .debpkg/usr/bin
# cp fyne-cross/bin/linux-amd64/soundscape-sync .debpkg/usr/bin
# - name: Create DEB package
# uses: jiro4989/build-deb-action@v3
# with:
# package: SoundscapeSync
# package_root: .debpkg
# maintainer: "Dominik Polakovics <[email protected]>"
# version: "${{ github.event.inputs.version }}"
# arch: 'amd64'
# desc: 'This is my sample package.'
# depends: 'ffmpeg'
# - name: get file name
# run: |
# mv *.deb soundscapesync-${{ github.event.inputs.version }}.deb
- uses: actions/download-artifact@v4
with:
name: linux-build
- name: Upload Linux Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: soundscape-sync
asset_name: soundscape-sync-linux-x86
asset_content_type: application/octet-stream
- uses: actions/download-artifact@v4
with:
name: windows-build
- name: Upload Windows Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: SoundscapeSync.exe
asset_name: SoundscapeSync.exe
asset_content_type: application/x-msdownload
- uses: actions/download-artifact@v4
with:
name: macos-build
- name: Upload MacOS Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: SoundscapeSync.app.zip
asset_name: MacOS.zip
asset_content_type: application/zip
- name: Generate checksum
uses: jmgilman/actions-generate-checksum@v1
with:
patterns: |
SoundscapeSync.exe
SoundscapeSync.app.zip
- name: Upload checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: checksum.txt
asset_name: checksum.txt
asset_content_type: text/plain