Skip to content

Create Installers

Create Installers #10

Workflow file for this run

name: Create 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
r-version:
description: 'Specify the R version to install'
required: true
default: '4.4.1' # Default version if the user does not specify
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:
# Install R
- name: Set up R
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ inputs.r-version }}
- 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/[email protected]
# set up and restore NuGet packages
- name: Setup NuGet
uses: NuGet/[email protected]
- 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/[email protected]
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
# 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 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
- name: Debug paths
run: |
$R_HOME=$(Rscript -e 'cat(R.home())')
echo "R_HOME path: $R_HOME"
echo "Source path: $(pwd)\installer\Rprofile.site"
- name: Update Rprofile.site
run: |
$R_HOME=$(Rscript -e 'cat(R.home())')
ROBOCOPY installer/Rprofile.site "$R_HOME\etc" /COPY:DAT
continue-on-error: true
- name: Copy R 64 bit
run: |
$R_HOME=$(Rscript -e 'cat(R.home())')
ROBOCOPY "$R_HOME" "instat\bin\x64\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