Skip to content

Commit

Permalink
Build windows app package on PR
Browse files Browse the repository at this point in the history
Use for now a static rootfs, do not do any other change, and pull
everything to latest.
This ensures we can always build before merging our windows app package
and attach it to the PR to sideload, without any further change.
  • Loading branch information
didrocks committed May 26, 2022
1 parent b9da89a commit f07d4e3
Showing 1 changed file with 80 additions and 0 deletions.
80 changes: 80 additions & 0 deletions .github/workflows/build-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Build windows package
on:
pull_request:

jobs:
build-wsl:
name: Build
runs-on: windows-latest
env:
rootfs64: 'http://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-wsl.rootfs.tar.gz'
workDir: 'C:/Temp/builddir'
steps:
- name: Checkout WSL
uses: actions/checkout@v3
with:
# we need to use a subdirectory as we can't move back base GITHUB_WORKSPACE directory
path: repo
- name: Copy under workDir (which has more space to build the package)
shell: bash
run: |
mkdir -p $(dirname ${{ env.workDir }})
mv ${GITHUB_WORKSPACE}/repo ${{ env.workDir }}
cd ${{ env.workDir }}
git checkout "${GITHUB_SHA}"
git submodule update --init --recursive
- name: Setup x64 rootfs
working-directory: ${{ env.workDir }}
shell: bash
run: |
set -eu
mkdir x64/
wget ${{ env.rootfs64}} -O x64/install.tar.gz
- name: Setup MSBuild (PATH)
uses: microsoft/[email protected]
- name: Install certificate
shell: powershell
working-directory: ${{ env.workDir }}
run: |
New-Item -ItemType directory -Path certificate
Set-Content -Path certificate\certificate.txt -Value '${{ secrets.CERTIFICATE }}'
certutil -decode certificate\certificate.txt certificate\certificate.pfx
$pwd = ConvertTo-SecureString '${{ secrets.CERTIFICATE_PASSWORD }}' -AsPlainText -Force
Import-PfxCertificate -Password $pwd -CertStoreLocation Cert:LocalMachine\Trust -FilePath certificate\certificate.pfx
Import-PfxCertificate -Password $pwd -CertStoreLocation Cert:CurrentUser\My -FilePath certificate\certificate.pfx
- name: Check if packaging the splash app is necessary
working-directory: ${{ env.workDir }}
shell: bash
run: |
BUILD_TREE_HASH=$(sha256sum DistroLauncher-Appx/Directory.build.props | cut -f1 -d' ')
META_TREE_HASH=$(sha256sum meta/Ubuntu18.04LTS/generated/DistroLauncher-Appx/Directory.build.props | cut -f1 -d' ')
if [ ${BUILD_TREE_HASH} != ${META_TREE_HASH} ]; then
echo "withFlutterSplash=true" >> $GITHUB_ENV
else
echo "Skipping Flutter steps due hashes comparing equal:"
echo " Build tree: ${BUILD_TREE_HASH}. Meta tree: ${META_TREE_HASH}"
fi
- uses: subosito/flutter-action@v2
if: ${{ env.withFlutterSplash == 'true' }}
with:
channel: stable
- name: Build the splash screen
working-directory: ${{ env.workDir }}
if: ${{ env.withFlutterSplash == 'true' }}
run: |
flutter config --enable-windows-desktop
cp "DistroLauncher/images/icon.ico" "ubuntu-wsl-splash/windows/runner/resources/app_icon.ico"
cd "ubuntu-wsl-splash"
flutter gen-l10n
flutter build windows --release
- name: Build Bundle
working-directory: ${{ env.workDir }}
run: msbuild .\DistroLauncher.sln /t:Build /m /nr:false /p:Configuration=Release /p:AppxBundle=Always /p:AppxBundlePlatforms="x64" /p:UapAppxPackageBuildMode=SideloadOnly -verbosity:normal
- name: Allow downloading sideload appxbundle
uses: actions/upload-artifact@v2
with:
name: sideload-build
path: |
${{ env.workDir }}/AppPackages/Ubuntu/Ubuntu_*/*
retention-days: 7

0 comments on commit f07d4e3

Please sign in to comment.