Skip to content

Add CI for IP10 #2397

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

Draft
wants to merge 13 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
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
407 changes: 212 additions & 195 deletions .github/workflows/build-pr.yml

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions .github/workflows/test-igor-rebase-exec-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Test Rebase Exec Igor Workflow
run-name: Test Rebase Exec Igor Workflow
env:
# if this environment variable is set it will use the igor version from
# C:\Program Files\WaveMetrics\Igor Pro 9 Folder\IgorBinaries_x64_${CI_IGOR_REVISION}
CI_IGOR_REVISION: "r56565"
# C:\Program Files\WaveMetrics\Igor Pro ${VERSION} Folder\IgorBinaries_x64_${CI_IGORIP${VERSION}_REVISION}
CI_IGOR9_REVISION: "r56565"
CI_IGOR10_REVISION: "r29303"
on:
workflow_call:
inputs:
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/test-igor-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Test Igor Workflow
run-name: Test Igor Workflow
env:
# if this environment variable is set it will use the igor version from
# C:\Program Files\WaveMetrics\Igor Pro 9 Folder\IgorBinaries_x64_${CI_IGOR_REVISION}
CI_IGOR_REVISION: "r56565"
# C:\Program Files\WaveMetrics\Igor Pro ${VERSION} Folder\IgorBinaries_x64_${CI_IGORIP${VERSION}_REVISION}
CI_IGOR9_REVISION: "r56565"
CI_IGOR10_REVISION: "r29303"
on:
workflow_call:
inputs:
Expand Down Expand Up @@ -56,6 +57,11 @@ on:
default: 360
type: number
description: Defines the job timeout in minutes
major_igorpro_version:
required: false
default: 9
type: number
description: The major Igor Pro version to use
defaults:
run:
shell: bash
Expand Down Expand Up @@ -84,7 +90,7 @@ jobs:
- name: Clean MIES installation
run: tools/clean_mies_installation.sh ${{ inputs.installer_flags }}
- name: Test experiment ${{ inputs.experiment }}
run: tools/autorun-test.sh -p ${{ inputs.experiment }} -v IP_9_64
run: tools/autorun-test.sh -p ${{ inputs.experiment }} -v IP_${{ inputs.major_igorpro_version }}_64
- name: Gather log files and crash dumps
if: always()
run: tools/gather-logfiles-and-crashdumps.sh
Expand Down
13 changes: 10 additions & 3 deletions Packages/MIES_Include.ipf
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
///
/// Developer instructions for raising the required nightly versions:
///
/// - Update the revision numbers for IP9 below in the expression involving
/// `BUILD`, and also `CI_IGOR_REVISION` in .github/workflows/test-igor-workflow.yml
/// - Update the revision numbers for IP9/10 below in the expression involving
/// `BUILD`, `CI_IGOR9_REVISION`, `CI_IGOR10_REVISION` in .github/workflows/test-igor-workflow.yml
/// - Upload the nightly zip packages to the FTP (Thomas' job). Don't delete the
/// old zip packages, we still need them.
/// - Update the below URLs
Expand All @@ -19,11 +19,14 @@
// They are defined here so that we can parse them from within IP.
//
// .. |IgorPro9WindowsNightly| replace:: `Igor Pro 9 (Windows) <https://www.byte-physics.de/Downloads/WinIgor9_01Dec2023.zip>`__
// .. |IgorPro10WindowsNightly| replace:: `Igor Pro 10 (Windows) <https://www.wavemetrics.net/Downloads/latest10/>`__
// .. |IgorPro9MacOSXNightly| replace:: `Igor Pro 9 (MacOSX) <https://www.byte-physics.de/Downloads/MacIgor9_01Dec2023.dmg>`__

#pragma IgorVersion=9.00

#if IgorVersion() < 10 && (NumberByKey("BUILD", IgorInfo(0)) < 56565)
#if IgorVersion() == 9 && (NumberByKey("BUILD", IgorInfo(0)) < 56565)
#define TOO_OLD_IGOR
#elif IgorVersion() == 10 && (NumberByKey("BUILD", IgorInfo(0)) < 29303)
#define TOO_OLD_IGOR
#endif

Expand Down Expand Up @@ -72,6 +75,10 @@ static Function/S GetDownloadLink()
ASSERT_TS(0, "Unsupported OS")
#endif

if(cmpstr(igorMajorVersion, "9"))
Abort "Download for Igor Pro 10 is not yet supported.\r Please manually download the nightly build from the documentation link."
endif

text = ProcedureText("", 0, "MIES_Include.ipf")
lineWithLink = GrepList(text, "\\Q|IgorPro" + igorMajorVersion + os + "Nightly|\\E", 0, "\r")
SplitString/E=".*<(.*)>.*" lineWithLink, url
Expand Down
3 changes: 3 additions & 0 deletions Packages/doc/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ In that case please perform the following steps:
- MacOSX: Install from image as usual
- Restart Igor Pro

For Igor Pro 10, download the installer for |IgorPro10WindowsNightly|. This requires access to the beta
program of WaveMetrics.

Installation using the installer (preferred)
--------------------------------------------

Expand Down
14 changes: 7 additions & 7 deletions tools/clean_mies_installation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ then
fi
fi

versions="9"
versions="9 10"

for i in $versions
do
Expand Down Expand Up @@ -148,13 +148,13 @@ do

if [ "$skipHardwareXOPs" = "0" ]
then
cp -r "$base_folder"/XOPs-IP${i}-64bit/* "$xops64"
cp -r "$base_folder"/XOPs-IP9-64bit/* "$xops64"
else
cp -r "$base_folder"/XOPs-IP${i}-64bit/MIESUtils* "$xops64"
cp -r "$base_folder"/XOPs-IP${i}-64bit/JSON* "$xops64"
cp -r "$base_folder"/XOPs-IP${i}-64bit/ZeroMQ* "$xops64"
cp -r "$base_folder"/XOPs-IP${i}-64bit/TUF* "$xops64"
cp -r "$base_folder"/XOPs-IP${i}-64bit/libzmq* "$xops64"
cp -r "$base_folder"/XOPs-IP9-64bit/MIESUtils* "$xops64"
cp -r "$base_folder"/XOPs-IP9-64bit/JSON* "$xops64"
cp -r "$base_folder"/XOPs-IP9-64bit/ZeroMQ* "$xops64"
cp -r "$base_folder"/XOPs-IP9-64bit/TUF* "$xops64"
cp -r "$base_folder"/XOPs-IP9-64bit/libzmq* "$xops64"
fi

if [ "$sourceLoc" = "git" ]
Expand Down
16 changes: 14 additions & 2 deletions tools/get-igor-path.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,22 @@ versionString=$1
version=$(echo $versionString | cut -f 2 -d "_")
bitness=$(echo $versionString | cut -f 3 -d "_")

if [ "$CI_IGOR_REVISION" = "" ]; then
if [ "$CI_IGOR_REVISION" = "" ]
then
revision=""
else
revision="_$CI_IGOR_REVISION"
# not using indirection here, see https://mywiki.wooledge.org/BashFAQ/006#Indirection
# as that seems to be not stable enough
if [ $version -eq 9 ]
then
revision="_$CI_IGOR9_REVISION"
elif [ $version -eq 10 ]
then
revision="_$CI_IGOR10_REVISION"
else
echo "Invalid version" > /dev/stderr
exit 1
fi
fi

if [ $bitness -eq 32 ]
Expand Down
6 changes: 3 additions & 3 deletions tools/installer/installer.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@

# This section defines paths
!define IGOR64EXTENSIONPATH "Igor Extensions (64-bit)"
# Endings for Helpfiles- and Packages\HDF- folders
# Endings for Helpfiles
!define IGOR9DIRTEMPL "IP9"
!define IGOR10DIRTEMPL "IP10"
!define IGOR10DIRTEMPL "IP9"
# source folder name for installation with XOPs
!define IGOR964XOPSOURCETEMPL "XOPs-IP9-64bit"
!define IGOR1064XOPSOURCETEMPL "XOPs-IP10-64bit"
!define IGOR1064XOPSOURCETEMPL "XOPs-IP9-64bit"

# source file names for XOPs for installation without Hardware XOPs
!define IGORUTILXOPSOURCETEMPL "MIESUtils-64.xop"
Expand Down