diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 01ec83304..5bb121620 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,6 +4,8 @@ on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' + branches: + - staging workflow_dispatch: inputs: version: @@ -40,9 +42,12 @@ jobs: VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" BUILD_NUMBER="${{ github.run_number }}" - else + elif [ -n "${{ inputs.version }}" ]; then VERSION="${{ inputs.version }}" BUILD_NUMBER="${{ inputs.build_number }}" + else + VERSION="0.0.0-staging.${{ github.run_number }}" + BUILD_NUMBER="${{ github.run_number }}" fi echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT @@ -114,9 +119,12 @@ jobs: VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" BUILD_NUMBER="${{ github.run_number }}" - else + elif [ -n "${{ inputs.version }}" ]; then VERSION="${{ inputs.version }}" BUILD_NUMBER="${{ inputs.build_number }}" + else + VERSION="0.0.0-staging.${{ github.run_number }}" + BUILD_NUMBER="${{ github.run_number }}" fi echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT @@ -209,9 +217,12 @@ jobs: VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" BUILD_NUMBER="${{ github.run_number }}" - else + elif [ -n "${{ inputs.version }}" ]; then VERSION="${{ inputs.version }}" BUILD_NUMBER="${{ inputs.build_number }}" + else + VERSION="0.0.0-staging.${{ github.run_number }}" + BUILD_NUMBER="${{ github.run_number }}" fi echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT @@ -236,6 +247,25 @@ jobs: -b "${{ steps.ver.outputs.build_number }}" \ -p windows -a stack_wallet -d -s + # The Actions windows-2022 runner user lacks SeCreateSymbolicLinkPrivilege, + # so link_assets.sh's mklink /D calls either fail or produce broken reparse + # points that Flutter's asset resolver cannot traverse. Replace each of + # the five gitignored asset directories with real copies instead. + - name: Replace asset symlinks with copies (CI workaround) + run: | + set -euo pipefail + for dirname in default_themes icon lottie in_app_logo_icons svg; do + target="assets/${dirname}" + source="asset_sources/${dirname}/stack_wallet" + # Remove whatever link_assets.sh left (reparse point, symlink, or nothing). + # cmd.exe rmdir on a junction/symlink removes the link, not the target. + if [ -e "$target" ] || [ -L "$target" ]; then + cmd.exe /c rmdir "$(cygpath -w "$target")" 2>/dev/null || rm -rf "$target" + fi + mkdir -p "$target" + cp -r "${source}/." "$target/" + done + - name: Get dependencies run: flutter pub get @@ -280,16 +310,10 @@ jobs: - name: Build run: flutter build windows --release - - name: Package - shell: pwsh - run: | - Compress-Archive -Path build\windows\x64\runner\Release\* ` - -DestinationPath "stack_wallet-windows-x86_64-${{ steps.ver.outputs.version }}.zip" - - uses: actions/upload-artifact@v4 with: name: stack_wallet-windows-x86_64-${{ steps.ver.outputs.version }} - path: stack_wallet-windows-x86_64-${{ steps.ver.outputs.version }}.zip + path: build/windows/x64/runner/Release/ build-macos: runs-on: macos-latest @@ -306,9 +330,12 @@ jobs: VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" BUILD_NUMBER="${{ github.run_number }}" - else + elif [ -n "${{ inputs.version }}" ]; then VERSION="${{ inputs.version }}" BUILD_NUMBER="${{ inputs.build_number }}" + else + VERSION="0.0.0-staging.${{ github.run_number }}" + BUILD_NUMBER="${{ github.run_number }}" fi echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT @@ -380,9 +407,12 @@ jobs: VERSION="${{ github.ref_name }}" VERSION="${VERSION#v}" BUILD_NUMBER="${{ github.run_number }}" - else + elif [ -n "${{ inputs.version }}" ]; then VERSION="${{ inputs.version }}" BUILD_NUMBER="${{ inputs.build_number }}" + else + VERSION="0.0.0-staging.${{ github.run_number }}" + BUILD_NUMBER="${{ github.run_number }}" fi echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT @@ -454,9 +484,19 @@ jobs: - uses: actions/download-artifact@v4 with: path: artifacts - merge-multiple: true + + - name: Package artifacts + run: | + mkdir -p release-files + for dir in artifacts/stack_wallet-windows-*/; do + [ -d "$dir" ] || continue + name=$(basename "$dir") + (cd "$dir" && zip -r "../../release-files/${name}.zip" .) + done + find artifacts/ \( -name "*.tar.gz" -o -name "*.zip" -o -name "*.ipa" \) -mindepth 2 -exec mv {} release-files/ \; + find artifacts/ -name "*.apk" -mindepth 2 -exec mv {} release-files/ \; - uses: softprops/action-gh-release@v2 with: generate_release_notes: true - files: artifacts/* + files: release-files/* diff --git a/crypto_plugins/flutter_libmwc b/crypto_plugins/flutter_libmwc index d74b89b75..cb444bf93 160000 --- a/crypto_plugins/flutter_libmwc +++ b/crypto_plugins/flutter_libmwc @@ -1 +1 @@ -Subproject commit d74b89b75863ce2d20e54c9c28c4c18111184e28 +Subproject commit cb444bf93c4c6e5305a3fb94641f42d908c199e9