Skip to content

Commit

Permalink
add test for release pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
dpolakovics committed Nov 12, 2024
1 parent 7728285 commit 399aa84
Showing 1 changed file with 181 additions and 0 deletions.
181 changes: 181 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
name: Test

on:
push:
branches: ["*"]

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: v0.9
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v0.9
release_name: Release test
body: ${{ steps.changelog.outputs.changes }}
draft: true
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 Release Hashes
uses: MCJack123/ghaction-generate-release-hashes@v3
with:
hash-type: sha256
file-name: CHECKSUMS.txt

0 comments on commit 399aa84

Please sign in to comment.