Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create release-build #9186

Merged
merged 3 commits into from
Oct 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 168 additions & 0 deletions .github/workflows/release-build
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@

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:

- 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

# Install R
- name: Set up R
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ inputs-version }}

# 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: Update Rprofile.site
run: |
ROBOCOPY R-Instat\Installer\Rprofile.site R\etc\ /E
continue-on-error: true

- name: Copy R 64 bit
run: |
ROBOCOPY R\ 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

Loading