Skip to content

update eth addy to banking/change fuego repo #23

update eth addy to banking/change fuego repo

update eth addy to banking/change fuego repo #23

name: XF₲ Wallet Linux App Store Release
on:
push:
branches: [main, master]
paths:
- "lib/**"
- "linux/**"
- "snapcraft.yaml"
- "flatpak/**"
- "pubspec.yaml"
- ".github/workflows/linux-appstore-release.yml"
pull_request:
branches: [main, master]
paths:
- "lib/**"
- "linux/**"
- "snapcraft.yaml"
- "flatpak/**"
- "pubspec.yaml"
- ".github/workflows/linux-appstore-release.yml"
workflow_dispatch:
inputs:
build_type:
description: "Build type"
required: true
default: "release"
type: choice
options:
- release
- debug
distribution_method:
description: "Distribution method"
required: true
default: "snap"
type: choice
options:
- snap
- flatpak
- appimage
- all
upload_to_store:
description: "Upload to store"
required: false
default: false
type: boolean
release:
types: [published]
permissions:
contents: write
env:
FLUTTER_VERSION: "3.24.0"
SNAP_NAME: "xfg-wallet"
FLATPAK_APP_ID: "com.fuego.fuego_wallet"
jobs:
build-snap:
name: Build XF₲ Wallet (Snap Store)
runs-on: ubuntu-latest
if: github.event.inputs.distribution_method == 'snap' || github.event.inputs.distribution_method == 'all' || github.event_name != 'workflow_dispatch'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Download required binaries
run: ./scripts/ensure-binaries.sh
- name: Enable Linux desktop support
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libsecret-1-dev
flutter config --enable-linux-desktop
- name: Install dependencies
run: flutter pub get
- name: Run tests
continue-on-error: true
run: flutter test
- name: Analyze code
run: flutter analyze
- name: Build Linux desktop app
run: flutter build linux --release
- name: Install Snapcraft
run: |
sudo snap install snapcraft --classic
- name: Build Snap package
run: |
snapcraft --destructive-mode
- name: Upload Snap artifacts
uses: actions/upload-artifact@v4
with:
name: xfg-wallet-snap
path: |
*.snap
snap/snapcraft.yaml
retention-days: 30
- name: Upload to Release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
*.snap
tag_name: ${{ github.ref_name }}
name: XF₲ Wallet Linux Snap ${{ github.ref_name }}
build-flatpak:
name: Build XF₲ Wallet (Flatpak)
runs-on: ubuntu-latest
if: github.event.inputs.distribution_method == 'flatpak' || github.event.inputs.distribution_method == 'all' || github.event_name != 'workflow_dispatch'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Download required binaries
run: ./scripts/ensure-binaries.sh
- name: Install Flatpak and dependencies
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- name: Enable Linux desktop support
run: |
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libsecret-1-dev
flutter config --enable-linux-desktop
- name: Install dependencies
run: flutter pub get
- name: Run tests
continue-on-error: true
run: flutter test
- name: Analyze code
run: flutter analyze
- name: Build Linux desktop app
run: flutter build linux --release
- name: Build Flatpak package
run: |
flatpak-builder --repo=repo --force-clean build-dir flatpak/com.fuego.fuego_wallet.yml
- name: Create Flatpak bundle
run: |
flatpak build-bundle repo xfg-wallet.flatpak com.fuego.fuego_wallet
- name: Upload Flatpak artifacts
uses: actions/upload-artifact@v4
with:
name: xfg-wallet-flatpak
path: |
xfg-wallet.flatpak
flatpak/
retention-days: 30
- name: Upload to Release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: xfg-wallet.flatpak
tag_name: ${{ github.ref_name }}
name: XF₲ Wallet Linux Flatpak ${{ github.ref_name }}
build-appimage:
name: Build XF₲ Wallet (AppImage)
runs-on: ubuntu-latest
if: github.event.inputs.distribution_method == 'appimage' || github.event.inputs.distribution_method == 'all' || github.event_name != 'workflow_dispatch'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: "stable"
- name: Download required binaries
run: ./scripts/ensure-binaries.sh
- name: Enable Linux desktop support
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libsecret-1-dev
flutter config --enable-linux-desktop
- name: Install dependencies
run: flutter pub get
- name: Run tests
continue-on-error: true
run: flutter test
- name: Analyze code
run: flutter analyze
- name: Build Linux desktop app
run: flutter build linux --release
- name: Create AppImage
run: |
cd build/linux/x64/release/bundle
# Download appimagetool
curl -LO https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
# Create desktop file for AppImage
cat > XF₲-Wallet.desktop << 'EOF'
[Desktop Entry]
Type=Application
Name=XF₲ Wallet
Comment=Privacy-focused cryptocurrency wallet
Exec=fuego_wallet
Icon=fuego_wallet
Categories=Finance;
Terminal=false
EOF
# Copy icon file
cp ../../../../../app_icon_256.png fuego_wallet.png || cp ../../../../app_icon_256.png fuego_wallet.png
# Create AppImage
./appimagetool-x86_64.AppImage . XF₲-Wallet-Linux.AppImage
# Clean up
rm -f appimagetool-x86_64.AppImage
- name: Upload AppImage artifacts
uses: actions/upload-artifact@v4
with:
name: xfg-wallet-appimage
path: build/linux/x64/release/bundle/XF₲-Wallet-Linux.AppImage
retention-days: 30
- name: Upload to Release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: build/linux/x64/release/bundle/XF₲-Wallet-Linux.AppImage
tag_name: ${{ github.ref_name }}
name: XF₲ Wallet Linux AppImage ${{ github.ref_name }}
upload-to-snap-store:
name: Upload to Snap Store
runs-on: ubuntu-latest
needs: build-snap
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.upload_to_store == 'true')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Snap artifact
uses: actions/download-artifact@v4
with:
name: xfg-wallet-snap
path: ./artifacts
- name: Install Snapcraft
run: |
sudo snap install snapcraft --classic
- name: Login to Snap Store
run: |
echo "${{ secrets.SNAP_STORE_LOGIN }}" | snapcraft login --with -
- name: Upload to Snap Store
run: |
cd artifacts
snapcraft upload *.snap --release=stable
upload-to-flathub:
name: Upload to Flathub
runs-on: ubuntu-latest
needs: build-flatpak
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.upload_to_store == 'true')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Flatpak artifact
uses: actions/download-artifact@v4
with:
name: xfg-wallet-flatpak
path: ./artifacts
- name: Install Flatpak and dependencies
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
- name: Setup Flathub repository
run: |
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- name: Upload to Flathub
run: |
# Note: This requires manual review process for Flathub
echo "Flatpak package ready for Flathub submission"
echo "Manual submission required at https://flathub.org/apps/submit"
security-scan:
name: Security Scan
runs-on: ubuntu-latest
needs: [build-snap, build-flatpak, build-appimage]
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'release')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: xfg-wallet-snap
path: ./artifacts/snap
- name: Download Flatpak artifacts
uses: actions/download-artifact@v4
with:
name: xfg-wallet-flatpak
path: ./artifacts/flatpak
- name: Download AppImage artifacts
uses: actions/download-artifact@v4
with:
name: xfg-wallet-appimage
path: ./artifacts/appimage
- name: Run security analysis
run: |
echo "Running Linux App Store security analysis..."
# Check for security issues in packages
echo "Checking Snap package..."
if [ -f "artifacts/snap/*.snap" ]; then
echo "✅ Snap package found"
# Basic security checks
unsquashfs -l artifacts/snap/*.snap | head -20
fi
echo "Checking Flatpak package..."
if [ -f "artifacts/flatpak/xfg-wallet.flatpak" ]; then
echo "✅ Flatpak package found"
fi
echo "Checking AppImage package..."
if [ -f "artifacts/appimage/XF₲-Wallet-Linux.AppImage" ]; then
echo "✅ AppImage package found"
# Check AppImage signature
file artifacts/appimage/XF₲-Wallet-Linux.AppImage
fi
notify-release:
name: Notify Release
runs-on: ubuntu-latest
needs:
[
build-snap,
build-flatpak,
build-appimage,
upload-to-snap-store,
upload-to-flathub,
]
if: always() && github.event_name == 'release'
steps:
- name: Notify Discord
if: env.DISCORD_WEBHOOK_URL != ''
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
with:
args: |
🚀 **XF₲ Wallet Linux App Store Release ${{ github.ref_name }}**
✅ Linux app store packages built
📦 Available for Snap Store, Flatpak, and AppImage
🔗 [Download from GitHub Releases](https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }})
**Build Details:**
- Version: ${{ github.ref_name }}
- Commit: ${{ github.sha }}
- Workflow: ${{ github.workflow }}
- Platform: Linux App Stores
- name: Create Release Summary
run: |
echo "## XF₲ Wallet Linux App Store Release ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Build Status" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Snap Package: Built and ready" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Flatpak Package: Built and ready" >> $GITHUB_STEP_SUMMARY
echo "- ✅ AppImage Package: Built and ready" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Security scan: Completed" >> $GITHUB_STEP_SUMMARY
if [ "${{ needs.upload-to-snap-store.result }}" == "success" ]; then
echo "- ✅ Snap Store: Uploaded successfully" >> $GITHUB_STEP_SUMMARY
else
echo "- ⚠️ Snap Store: Upload skipped or failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.upload-to-flathub.result }}" == "success" ]; then
echo "- ✅ Flathub: Uploaded successfully" >> $GITHUB_STEP_SUMMARY
else
echo "- ⚠️ Flathub: Upload skipped or failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Download Links" >> $GITHUB_STEP_SUMMARY
echo "- [Snap Package](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/*.snap)" >> $GITHUB_STEP_SUMMARY
echo "- [Flatpak Package](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/xfg-wallet.flatpak)" >> $GITHUB_STEP_SUMMARY
echo "- [AppImage Package](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/XF₲-Wallet-Linux.AppImage)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Installation Instructions" >> $GITHUB_STEP_SUMMARY
echo "#### Snap Store" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "sudo snap install xfg-wallet" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "#### Flatpak" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "flatpak install xfg-wallet.flatpak" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "#### AppImage" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "chmod +x XF₲-Wallet-Linux.AppImage" >> $GITHUB_STEP_SUMMARY
echo "./XF₲-Wallet-Linux.AppImage" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY