Skip to content

Commit 971f4ac

Browse files
committed
chore: Update copyright headers
Signed-off-by: Mia Battad <[email protected]>
1 parent 824ccea commit 971f4ac

37 files changed

+1740
-40
lines changed

Diff for: .github/PULL_REQUEST_TEMPLATE.md

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ See [DEVELOPMENT.md](https://github.com/aws-deadline/deadline-cloud-for-houdini/
2020

2121
#### Please run the integration tests and paste the results below.
2222

23+
#### #### If `installer/` was modified or a file was added/removed from `src/`, then update the installer tests and post the test results below.
24+
2325
### Was this change documented?
2426

2527
*delete text starting here*

Diff for: .github/workflows/build_installers.yml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: "Build Installers"
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
os:
7+
required: true
8+
default: Linux
9+
type: choice
10+
options:
11+
- Linux
12+
- Windows
13+
- MacOS
14+
ref_type:
15+
required: true
16+
default: tags
17+
type: choice
18+
options:
19+
- tags
20+
- heads
21+
ref:
22+
required: true
23+
type: string
24+
default: mainline
25+
environment:
26+
required: true
27+
type: choice
28+
options:
29+
- mainline
30+
31+
jobs:
32+
BuildInstaller:
33+
if: (github.repository == 'aws-deadline/deadline-cloud-for-houdini')
34+
name: Build Installer
35+
uses: aws-deadline/.github/.github/workflows/reusable_build_installers.yml@mainline
36+
secrets: inherit
37+
with:
38+
environment: ${{inputs.environment}}
39+
ref_type: ${{inputs.ref_type}}
40+
ref: ${{inputs.ref}}
41+
oses: "['${{inputs.os}}']"
42+
project_name: "deadline-cloud-for-houdini"

Diff for: .gitignore

+29-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,37 @@
1+
# Build artifacts
12
/dist
3+
/dependency_bundle/
4+
/scripts/dependency_bundle/
5+
/dev_install/
6+
/wheels/
7+
8+
# License file for InstallBuilder
9+
license.xml
10+
211
*.egg-info/
312
__pycache__/
413
.coverage
5-
.DS_Store
614
.tox
7-
.venv
815
/htmlcov
9-
.vscode
10-
*_version.py
11-
houdini_version.txt
12-
/dependency_bundle/
13-
/scripts/dependency_bundle/
14-
/dev_install/
15-
/wheels/
1616
**/otls/backup
1717
plugin_env
18+
19+
# Hatch version temp file
20+
*_version.py
21+
houdini_version.txt
22+
23+
# Extensions for installers, etc.
24+
*.run
25+
*.exe
26+
*.zip
27+
*.app
28+
*.dmg
29+
30+
# virtualenv
31+
.venv
32+
33+
# IDE
34+
.vscode
35+
36+
# macOS
37+
.DS_Store

Diff for: DEVELOPMENT.md

+22
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,20 @@ You can work on the adaptor alongside your submitter development workflow using
9999

100100
3. Open the Houdini integrated submitter, and in the Job-Specific Settings tab, enable the option 'Include Adaptor Wheels'. Add the "wheels" folder. Then submit your test job.
101101

102+
## Build the Installer
103+
104+
If necessary, you can build a standalone installer for the Houdini submitter from the source XML in this repository.
105+
106+
1. Build the package with `hatch run build`.
107+
108+
2. Build the installer with `hatch`. Omit `--platform` to use the platform of your machine.
109+
```bash
110+
hatch run installer:build-installer --local-dev --platform <PLATFORM> [--install-builder-location <LOCATION> --output-dir <DIR>]
111+
112+
# To see the full list of arguments:
113+
# hatch run installer:build-installer -h
114+
```
115+
102116
## Testing
103117

104118
### Unit Tests
@@ -133,4 +147,12 @@ To run integration tests:
133147
We provide a Python script that can set up and run integration tests for multiple Houdini versions consecutively. It takes a JSON string of versions and their executable locations as an argument:
134148
```sh
135149
$ python scripts/run_integ_tests.py "{\"19.5.805\": \"C:\\Program Files\\Side Effects Software\\Houdini 19.5.805\\bin\\hython.exe\", \"20.0.896\": \"C:\\Program Files\\Side Effects Software\\Houdini 20.0.896\\bin\\hython.exe\"}"
150+
```
151+
152+
### Installer Tests
153+
Installer tests are located in the `test/installer` directory. These tests assume that a built installer corresponding to your platform exists in the repository root.
154+
155+
To run the tests:
156+
```bash
157+
hatch run test-installer
136158
```

Diff for: depsBundle.sh

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
#!/bin/bash
22
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
4+
# This script is called in a shell subprocess.
5+
# If editing this script, please see the security considerations
6+
# of this invocation method:
7+
# https://docs.python.org/3/library/subprocess.html#security-considerations
38
set -xeuo pipefail
49

510
SCRIPT_FOLDER=$(dirname "$0")/scripts

Diff for: hatch.toml

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ pre-install-commands = [
77
[envs.default.scripts]
88
sync = "pip install -r requirements-testing.txt"
99
test = "pytest {args:test/unit}"
10+
test-installer = "pytest --no-cov {args:test/installer} -vvv"
1011
typing = "mypy {args:src test}"
1112
style = [
1213
"ruff check {args:.}",
@@ -34,6 +35,9 @@ build = "hatch build"
3435
[envs.codebuild.env-vars]
3536
SKIP_BOOTSTRAP_TEST_RESOURCES="True"
3637

38+
[envs.installer.scripts]
39+
build-installer = "python {root}/scripts/build_installer_cli.py --installer-source-path {root}/installer/DeadlineCloudForHoudiniSubmitter.xml {args:}"
40+
3741
[envs.integ]
3842
pre-install-commands = [
3943
"pip install -r requirements-integ-testing.txt",

Diff for: install_builder/deadline-cloud-for-houdini.xml

+118-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
<!-- Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -->
12
<componentGroup>
23
<name>deadline_cloud_for_houdini</name>
3-
<description>Deadline Cloud for Houdini 19.5-20.5</description>
4+
<description>Deadline Cloud for Houdini</description>
45
<detailedDescription>Houdini plugin for submitting jobs to AWS Deadline Cloud. Compatible with Houdini 19.5-20.5</detailedDescription>
56
<canBeEdited>1</canBeEdited>
67
<selected>0</selected>
@@ -13,7 +14,7 @@
1314
<platforms>all</platforms>
1415
<distributionFileList>
1516
<distributionDirectory allowWildcards="1">
16-
<origin>components/deadline-cloud-for-houdini/src/deadline/houdini_submitter/*</origin>
17+
<origin>../src/deadline/houdini_submitter/*</origin>
1718
</distributionDirectory>
1819
</distributionFileList>
1920
</folder>
@@ -24,7 +25,7 @@
2425
<platforms>all</platforms>
2526
<distributionFileList>
2627
<distributionDirectory allowWildcards="1">
27-
<origin>components/deadline-cloud-for-houdini/packages/*</origin>
28+
<origin>../packages/*</origin>
2829
</distributionDirectory>
2930
</distributionFileList>
3031
<actionList>
@@ -34,7 +35,7 @@
3435
<type>exact</type>
3536
<encoding>utf-8</encoding>
3637
<substitutionList>
37-
<substitution pattern="INSTALL_DIR_PLACEHOLDER" value="${installdir.unix}" />
38+
<substitution pattern="INSTALL_DIR_PLACEHOLDER" value="${houdini_installdir}" />
3839
</substitutionList>
3940
</substitute>
4041
<fnAddPathEnvironmentVariable>
@@ -43,6 +44,9 @@
4344
<value>${houdini_packagedir}</value>
4445
<scope>${installscope}</scope>
4546
<insertAt>end</insertAt>
47+
<ruleList>
48+
<platformTest type="windows"/>
49+
</ruleList>
4650
</fnAddPathEnvironmentVariable>
4751
</actionList>
4852
</folder>
@@ -53,17 +57,121 @@
5357
<platforms>all</platforms>
5458
<distributionFileList>
5559
<distributionDirectory allowWildcards="1">
56-
<origin>components/deadline-cloud-for-houdini/dependency_bundle</origin>
60+
<origin>../dependency_bundle</origin>
5761
</distributionDirectory>
5862
</distributionFileList>
5963
</folder>
6064
</folderList>
65+
<functionDefinitionList>
66+
<actionDefinition name="fnCopyHoudiniPackageFile">
67+
<parameterList>
68+
<stringParameter name="destinationDir"/>
69+
</parameterList>
70+
<actionList>
71+
<createDirectory>
72+
<path>${destinationDir}</path>
73+
<ruleList>
74+
<fileExists path="${destinationDir}" negate="1"/>
75+
</ruleList>
76+
</createDirectory>
77+
<copyFile origin="${houdini_packagedir}/${deadline_package_file_name}" destination="${destinationDir}/${deadline_package_file_name}"/>
78+
<addFilesToUninstaller files="${destinationDir}/${deadline_package_file_name}"/>
79+
</actionList>
80+
</actionDefinition>
81+
</functionDefinitionList>
82+
<componentList>
83+
<component>
84+
<name>houdini_19_5</name>
85+
<description>Houdini 19.5</description>
86+
<selected>0</selected>
87+
<parameterList>
88+
<directoryParameter>
89+
<name>houdini_19_5_packagedir</name>
90+
<description>Houdini 19.5 Packages Directory</description>
91+
<explanation>Enter the path to the Houdini 19.5 packages directory. For easiest installation, Houdini should be installed before installing Deadline Cloud for Houdini.</explanation>
92+
<default>${houdini_user_pref_dir_default}19.5/packages</default>
93+
<allowEmptyValue>0</allowEmptyValue>
94+
<ask>yes</ask>
95+
<cliOptionName>houdini-19-5-package-dir</cliOptionName>
96+
<cliOptionText>Path to the Houdini 19.5 packages directory. When the installer is run, if the HOUDINI_USER_PREF_DIR environment variable is set, this directory will default to the packages subdirectory at that path.</cliOptionText>
97+
<mustBeWritable>yes</mustBeWritable>
98+
</directoryParameter>
99+
</parameterList>
100+
<postInstallationActionList>
101+
<fnCopyHoudiniPackageFile destinationDir="${houdini_19_5_packagedir}" />
102+
</postInstallationActionList>
103+
</component>
104+
<component>
105+
<name>houdini_20_0</name>
106+
<description>Houdini 20.0</description>
107+
<selected>0</selected>
108+
<parameterList>
109+
<directoryParameter>
110+
<name>houdini_20_0_packagedir</name>
111+
<description>Houdini 20.0 Packages Directory</description>
112+
<explanation>Enter the path to the Houdini 20.0 packages directory. For easiest installation, Houdini should be installed before installing Deadline Cloud for Houdini.</explanation>
113+
<default>${houdini_user_pref_dir_default}20.0/packages</default>
114+
<allowEmptyValue>0</allowEmptyValue>
115+
<ask>yes</ask>
116+
<cliOptionName>houdini-20-0-package-dir</cliOptionName>
117+
<cliOptionText>Path to the Houdini 20.0 packages directory. When the installer is run, if the HOUDINI_USER_PREF_DIR environment variable is set, this directory will default to the packages subdirectory at that path.</cliOptionText>
118+
<mustBeWritable>yes</mustBeWritable>
119+
</directoryParameter>
120+
</parameterList>
121+
<postInstallationActionList>
122+
<fnCopyHoudiniPackageFile destinationDir="${houdini_20_0_packagedir}" />
123+
</postInstallationActionList>
124+
</component>
125+
<component>
126+
<name>houdini_20_5</name>
127+
<description>Houdini 20.5</description>
128+
<selected>0</selected>
129+
<parameterList>
130+
<directoryParameter>
131+
<name>houdini_20_5_packagedir</name>
132+
<description>Houdini 20.5 Packages Directory</description>
133+
<explanation>Enter the path to the Houdini 20.5 packages directory. For easiest installation, Houdini should be installed before installing Deadline Cloud for Houdini.</explanation>
134+
<default>${houdini_user_pref_dir_default}20.5/packages</default>
135+
<allowEmptyValue>0</allowEmptyValue>
136+
<ask>yes</ask>
137+
<cliOptionName>houdini-20-5-package-dir</cliOptionName>
138+
<cliOptionText>Path to the Houdini 20.5 packages directory. When the installer is run, if the HOUDINI_USER_PREF_DIR environment variable is set, this directory will default to the packages subdirectory at that path.</cliOptionText>
139+
<mustBeWritable>yes</mustBeWritable>
140+
</directoryParameter>
141+
</parameterList>
142+
<postInstallationActionList>
143+
<fnCopyHoudiniPackageFile destinationDir="${houdini_20_5_packagedir}" />
144+
</postInstallationActionList>
145+
</component>
146+
</componentList>
61147
<initializationActionList>
62148
<setInstallerVariable name="all_components" value="${all_components} deadline_cloud_for_houdini" />
63-
</initializationActionList>
64-
<readyToInstallActionList>
65-
<setInstallerVariable name="houdini_installdir" value="${installdir}/Submitters/Houdini" />
149+
<if>
150+
<conditionRuleList>
151+
<isTrue value="${individual_install}"/>
152+
</conditionRuleList>
153+
<actionList>
154+
<setInstallerVariable name="houdini_installdir" value="${installdir}"/>
155+
</actionList>
156+
<elseActionList>
157+
<setInstallerVariable name="houdini_installdir" value="${installdir}/Submitters/Houdini"/>
158+
</elseActionList>
159+
</if>
66160
<setInstallerVariable name="houdini_packagedir" value="${houdini_installdir}/deadline_package" />
161+
<if>
162+
<conditionRuleList>
163+
<compareText>
164+
<text>${env(HOUDINI_USER_PREF_DIR)}</text>
165+
<logic>does_not_equal</logic>
166+
<value></value>
167+
</compareText>
168+
</conditionRuleList>
169+
<actionList>
170+
<setInstallerVariable name="houdini_19_5_packagedir" value="${env(HOUDINI_USER_PREF_DIR)}/packages"/>
171+
<setInstallerVariable name="houdini_20_0_packagedir" value="${env(HOUDINI_USER_PREF_DIR)}/packages"/>
172+
<setInstallerVariable name="houdini_20_5_packagedir" value="${env(HOUDINI_USER_PREF_DIR)}/packages"/>
173+
</actionList>
174+
</if>
67175
<if>
68176
<conditionRuleList>
69177
<platformTest type="windows" />
@@ -95,7 +203,7 @@
95203
<deleteFile path="${houdini_user_pref_dir_default}19.5/packages/deadline_submitter_for_houdini.json" />
96204
<deleteFile path="${houdini_user_pref_dir_default}20.0/packages/deadline_submitter_for_houdini.json" />
97205
<deleteFile path="${houdini_user_pref_dir_default}20.5/packages/deadline_submitter_for_houdini.json" />
98-
</readyToInstallActionList>
206+
</initializationActionList>
99207
<parameterList>
100208
<stringParameter name="deadline_cloud_for_houdini_summary" ask="0" cliOptionShow="0">
101209
<value>Deadline Cloud for Houdini 19.5-20.5
@@ -111,4 +219,4 @@
111219
</unzip>
112220
<deleteFile path="${installdir}/tmp/houdini_deps"/>
113221
</postInstallationActionList>
114-
</componentGroup>
222+
</componentGroup>

0 commit comments

Comments
 (0)