Build and Release EXE and APK #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Release EXE and APK | |
on: | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: windows-latest | |
steps: | |
# Checkout the repository code | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# Set up .NET SDK | |
- name: Set up .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '8.0.x' | |
- name: Clear NuGet Cache | |
run: dotnet nuget locals all --clear | |
- name: Download Keystore | |
run: | | |
[System.IO.File]::WriteAllBytes("gene.keystore", [Convert]::FromBase64String("${{ secrets.ANDROID_KEYSTORE }}")) | |
- name: Build Model | |
run: dotnet publish ModelA/ModelA.csproj -c Release -r win-x86 --self-contained -o ./Release | |
- name: Build Gene dll | |
run: dotnet publish GeneA/GeneA.csproj -c Release -r win-x86 --self-contained -o ./Release | |
# Build the EXE in Release mode | |
- name: Build EXE | |
run: dotnet publish GeneA.Desktop/GeneA.Desktop.csproj -c Release -r win-x86 --self-contained -o ./Desktop/Release | |
- name: Download dotnet runtime | |
run: | | |
Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/3980ab0a-379f-44a0-9be6-eaf74c07a3b3/bd1cc6107ff3d8fe0104d30f01339b74/dotnet-runtime-8.0.7-win-x64.exe" -OutFile "./DesktopInstall/dotnet-runtime-8.0.7-win-x64.exe" | |
# Install NSIS | |
- name: Install NSIS | |
run: choco install nsis | |
# Create the EXE installer using NSIS | |
- name: Create EXE Installer | |
run: makensis DesktopInstall/GeneInstallerScript.nsi | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Install Android SDK | |
run: | | |
choco install android-sdk | |
choco install android-ndk | |
echo "export ANDROID_HOME=C:/Program Files (x86)/Android/android-sdk" >> $GITHUB_ENV | |
echo "export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/30.0.3:$PATH" >> $GITHUB_ENV | |
- name: Install Android Workloads | |
run: dotnet workload install android | |
# Build the APK in Release mode | |
- name: Build APK | |
run: dotnet publish GeneA.Android/GeneA.Android.csproj -c Release -o ./Android/Release | |
# Sign the APK (if needed) | |
- name: Sign APK | |
run: | | |
$ANDROID_HOME/build-tools/30.0.3/apksigner sign --ks gene.keystore --ks-key-alias gene --ks-pass pass:${{ secrets.KEYSTORE_PASSWORD }} ./Android/Release/com.jooworks.Gene.apk | |
# Create a new GitHub release | |
# - name: Create GitHub Release | |
# id: create_release | |
# uses: actions/create-release@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# tag_name: v1.0.${{ github.run_number }} # Auto-increment the version | |
# release_name: Release v1.0.${{ github.run_number }} | |
# draft: false | |
# prerelease: false | |
# # Upload the EXE installer to the GitHub release | |
# - name: Upload EXE to Release | |
# uses: actions/upload-release-asset@v1 | |
# with: | |
# upload_url: ${{ steps.create_release.outputs.upload_url }} | |
# asset_path: ./Desktop/Release/Gene-Installer.exe | |
# asset_name: Gene-Installer.exe | |
# asset_content_type: application/octet-stream | |
# # Upload the signed APK to the GitHub release | |
# - name: Upload APK to Release | |
# uses: actions/upload-release-asset@v1 | |
# with: | |
# upload_url: ${{ steps.create_release.outputs.upload_url }} | |
# asset_path: ./Android/Release/com.jooworks.Gene.apk | |
# asset_name: com.jooworks.Gene.apk | |
# asset_content_type: application/vnd.android.package-archive |