Create 32 bit and 64 bit Installers #73
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: Create 32 bit and 64 bit Installers | |
on: | |
workflow_dispatch: | |
inputs: | |
major_version: | |
description: 'Major Version' | |
required: true | |
minor_version: | |
description: 'Minor Version' | |
required: true | |
revision_no: | |
description: 'Revision' | |
required: true | |
jobs: | |
build: | |
# running on 2019 so that .NET version 4.5 and lower can be used | |
runs-on: windows-2019 | |
# set variables | |
env: | |
Solution_Name: Instat.sln | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
# check out r-instat | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild | |
- name: Setup MSBuild.exe | |
uses: microsoft/setup-msbuild@v1.1.3 | |
# set up and restore NuGet packages | |
- name: Setup NuGet | |
uses: NuGet/setup-nuget@v1.1.1 | |
- name: Restore NuGet | |
run: nuget restore $env:Solution_Name | |
# Restore the application to populate the obj folder with RuntimeIdentifiers | |
- name: Restore the application | |
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=Release | |
# increment build number | |
- name: Generate build number | |
uses: einaregilsson/build-number@v3 | |
with: | |
token: ${{secrets.github_token}} | |
#update version numbers in assembley | |
- name: set-version-assemblyinfo | |
uses: dannevesdantas/set-version-assemblyinfo@v.1.0.0 | |
with: | |
# Folder location to search for AssemblyInfo.cs/.vb files | |
path: instat\My Project\AssemblyInfo.vb | |
# optional, default is ${{ github.workspace }} | |
# Version number to set on [AssemblyVersion] and [AssemblyFileVersion] attributes of AssemblyInfo.cs/.vb files | |
version: "${{ inputs.major_version }}.${{ inputs.minor_version }}.${{ inputs.revision_no }}.${env:BUILD_NUMBER}" | |
# Create the app package by building and packaging the Windows Application Packaging project | |
# 32 bit | |
- name: Create the app package 32bit | |
run: msbuild $env:Solution_Name /p:Configuration=Release /p:Platform=x86 /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }} | |
env: | |
Appx_Bundle: Always | |
Appx_Package_Build_Mode: StoreUpload | |
Configuration: ${{ matrix.configuration }} | |
# Create the app package by building and packaging the Windows Application Packaging project | |
# 64bit | |
- name: Create the app package 64 bit | |
run: msbuild $env:Solution_Name /p:Configuration=Release /p:Platform=x64 /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }} | |
env: | |
Appx_Bundle: Always | |
Appx_Package_Build_Mode: StoreUpload | |
Configuration: ${{ matrix.configuration }} | |
# Build 32 bit installer without R | |
- name: Building the installer 32bit - No R | |
run: | | |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "inno_install_script_32bit.iss" | |
shell: cmd | |
# upload 32 bit installer without R | |
- name: Upload the 32 bit installer as an artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name != 'pull_request' }} | |
with: | |
path: "Output/" | |
name: rinstat32NoR | |
- name: Remove 32 bit without R installer | |
run: | | |
del "Output/*" | |
# Build 64 bit installer without R | |
- name: Building the installer 64bit - No R | |
run: | | |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "inno_install_script_64bit.iss" | |
shell: cmd | |
# Upload 64 bit installer without R | |
- name: Upload the 64 bit installer as an artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name != 'pull_request' }} | |
with: | |
path: "Output/" | |
name: rinstat64NoR | |
- name: Remove 64 bit without R installer | |
run: | | |
del "Output/*" | |
# check out R-Instat Data | |
- name: Checkout Instat Data | |
uses: actions/checkout@v3 | |
with: | |
repository: ' africanmathsinitiative/R-Instat-Data' | |
fetch-depth: 0 | |
path: 'InstatData' | |
# Create directory and copy over InstatData (64bit) | |
- name: Make Library directory 64 bit | |
run: | | |
MKDIR instat\bin\x64\Release\static\Library\ | |
- name: Copy R-Instat Data 64 bit | |
run: | | |
ROBOCOPY InstatData\data\ instat\bin\x64\Release\static\Library\ /E | |
continue-on-error: true | |
# Create directory and copy over InstatData (32bit) | |
- name: Make Library directory 32 bit | |
run: | | |
MKDIR instat\bin\Release\static\Library\ | |
- name: Copy R-Instat Data 32 bit | |
run: | | |
ROBOCOPY InstatData\data\*.* instat\bin\Release\static\Library\ /E | |
continue-on-error: true | |
# check out R for R-Instat | |
- name: Checkout R for R-Instat | |
uses: actions/checkout@v3 | |
with: | |
repository: 'ChrisMarsh82/R-RInstat' | |
fetch-depth: 0 | |
path: 'R-RInstat' | |
- name: Copy R 64 bit | |
run: | | |
ROBOCOPY R-RInstat\64Bit\ instat\bin\x64\Release\static\ /E | |
continue-on-error: true | |
- name: Copy R 32 bit | |
run: | | |
ROBOCOPY R-RInstat\32Bit\ instat\bin\Release\static\ /E | |
continue-on-error: true | |
- name: Set R-tools | |
uses: r-windows/install-rtools@master | |
- name: Install R packages (64 bit) | |
run: | | |
"instat\bin\x64\Release\static\R\bin\Rscript.exe" "instat\static\InstatObject\R\InstallPackages.R" | |
shell: cmd | |
- name: Building the installer 64bit - With R | |
run: | | |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "inno_install_script_64bit.iss" | |
shell: cmd | |
- name: Upload the 64 bit installer with R as an artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name != 'pull_request' }} | |
with: | |
path: "Output/" | |
name: rinstat64WithR-innosetup | |
- name: Remove 64 bit release files to free up space | |
run: | | |
Remove-Item "instat\bin\x64\Release\" -Recurse | |
- name: Remove 64 bit with R installer | |
run: | | |
del "Output/*" | |
- name: Install R packages (32 bit) | |
run: | | |
"instat\bin\Release\static\R\bin\Rscript.exe" "instat\static\InstatObject\R\InstallPackages.R" | |
shell: cmd | |
- name: Building the installer 32bit - With R | |
run: | | |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "inno_install_script_32bit.iss" | |
shell: cmd | |
- name: Upload the 32 bit installer with R as an artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name != 'pull_request' }} | |
with: | |
path: "Output/" | |
name: rinstat32WithR-innosetup | |