Skip to content

Commit

Permalink
Merge pull request #4106 from zowe/user/markackert/update-automation-…
Browse files Browse the repository at this point in the history
…cherrypicked

Update v2 manifest, node versions, and automation
  • Loading branch information
MarkAckert authored Dec 13, 2024
2 parents 009e1ce + d0b528a commit ed33ee6
Show file tree
Hide file tree
Showing 13 changed files with 96 additions and 31 deletions.
12 changes: 12 additions & 0 deletions .github/lychee.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# This lychee configuration tries to find dead links in zwe, pswi, and smpe files which may be displayed to the user.
# This does not focus on dead links for internal-facing documentation, e.g. README.md.

# We're including language sources as well as document files since the language sources embed URLs
# which can be displayed to the user, e.g. 'zwe' shell script commands displaying help information.

exclude_path = ['smpe/bld/service/_README_sample_sysmod_builds.docx']
# This exclude list covers known urls which should be ignored, including ones which contained
# templated values in typescript. The templates are covered by a wildcard.
exclude = [ 'https://www.eclipse.org/legal/epl-v20.html', 'https://zowe.org/schemas/*', 'https://www.zowe.org/schemas/*', 'https://discovery', 'https://github.com/zowe/launcher/blob/*', 'https://myregistry/url$', 'https://your-zos-host-name/zosmf/*{1,60}', '^http://service.software.ibm.com/holdata/390holddata.html', ]

hidden = true
9 changes: 4 additions & 5 deletions .github/scripts/cicd_test/make_matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,14 @@ case $install_test_choice in
test_file="$KEYRING_TESTFILE"
;;

"z/OS node v18")
test_file="$ZOS_NODE_V18_TESTFILE"
test_force_system="zzow11"
;;

"z/OS node v20")
test_file="$ZOS_NODE_V20_TESTFILE"
;;

"z/OS node v22")
test_file="$ZOS_NODE_V22_TESTFILE"
;;

"Non-strict Verify External Certificate")
test_file="$NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE"
;;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# Set outputs
echo ZOWE_ARTIFACTORY_FINAL=$ZOWE_ARTIFACTORY_FINAL >>$GITHUB_OUTPUT
echo ZOWE_ARTIFACTORY_FINAL_FILENAME=$ZOWE_ARTIFACTORY_FINAL_FILENAME >>$GITHUB_OUTPUT
echo NODE_HOME_PATTERN=/ZOWE/node/node-$ZOS_NODE_VERSION-os390-s390x >>$GITHUB_OUTPUT
echo NODE_HOME_PATTERN=/ZOWE/node/node-$ZOS_NODE_VERSION >>$GITHUB_OUTPUT
echo TEST_SERVER=$TEST_SERVER >>$GITHUB_OUTPUT
echo TEST_SERVER_NICKNAME=$TEST_SERVER_NICKNAME >>$GITHUB_OUTPUT
echo EXTENSION_LIST=$EXTENSION_LIST >>$GITHUB_OUTPUT
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/cicd-test-readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Workflow trigger is at [cicd-test](https://github.com/zowe/zowe-install-packagin
- SMPE PTF
- Extensions
- Keyring
- z/OS node v18
- z/OS node v20
- Non-strict Verify External Certificate
- Install PTF twice
- VSAM Caching storage method
Expand Down Expand Up @@ -109,7 +109,7 @@ Background: CICD testing relies on a `zowe.pax` or `zowe-smpe.zip` (for SMPE ins
When running CICD integration tests during RC stage, the following string will be parsed into the Github Actions matrix. As a result, a total of 21 independent jobs will be spawned.
```
basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v18.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09)
basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09)
```
Total elapsed time when running in parallel is approximately 3.5 hours on paper idealy if all parallel jobs are executing at the same time. In reality, from numerous tests performed, total elapsed time is around 4 hours.
Expand All @@ -121,7 +121,6 @@ Selected test running elapsed time:
| ---- | ------------ |
| Convenience Pax | 53m |
| SMPE PTF | 68m |
| z/OS node v18 | 45m |
| z/OS node v20 | 45m |
| Keyring | 53m |
| Non-strict Verify External Certificate | 51m |
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/cicd-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ on:
- SMPE PTF
- Extensions
- Keyring
- z/OS node v18
- z/OS node v20
- z/OS node v22
- Non-strict Verify External Certificate
- Install PTF Twice
- VSAM Caching Storage Method
Expand Down Expand Up @@ -69,8 +69,8 @@ env:
DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/{ext-name}/*/{ext-name}-*.pax

# below block can be overwritten, adjusted by DevOps only
# ZOS_NODE_VERSION more to choose from: v16.20.1, v18.16.0
ZOS_NODE_VERSION: v16.20.1
# ZOS_NODE_VERSION more to choose from: v18.16.0, v20.11.0
ZOS_NODE_VERSION: v18.16.0
CLIENT_NODE_VERSION: v12.18.3
INSTALL_TEST_DEBUG_INFORMATION: zowe-install-test:*
SANITY_TEST_DEBUG_INFORMATION: zowe-sanity-test:*
Expand All @@ -81,16 +81,16 @@ env:
SMPE_PTF_TESTFILE: basic/install-ptf.ts
EXTENSIONS_TESTFILE: basic/install-ext.ts
KEYRING_TESTFILE: extended/keyring.ts
ZOS_NODE_V18_TESTFILE: extended/node-versions/node-v18.ts
ZOS_NODE_V20_TESTFILE: extended/node-versions/node-v20.ts
ZOS_NODE_V22_TESTFILE: extended/node-versions/node-v22.ts
NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE: extended/certificates/nonstrict-verify-external-certificate.ts
INSTALL_PTF_TWICE_TESTFILE: extended/install-ptf-two-times.ts
VSAM_CACHING_STORAGE_METHOD_TESTFILE: extended/caching-storages/vsam-storage.ts
INFINISPAN_CACHING_STORAGE_METHOD_TESTFILE: extended/caching-storages/infinispan-storage.ts
CONFIG_MANAGER_TESTFILE: extended/config-manager/enable-config-manager.ts
GENERAL_API_DOCUMENTATION_TESTFILE: basic/install-api-gen.ts
ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all)
ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v18.ts(zzow11);extended/node-versions/node-v20.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any)
ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(any);extended/node-versions/node-v22.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any)

jobs:
display-dispatch-event-id:
Expand Down Expand Up @@ -298,9 +298,6 @@ jobs:
case 'Keyring':
eta = 53
break;
case 'z/OS node v18':
eta = 45
break;
case 'z/OS node v20':
eta = 45
break;
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/link-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# This link checker focuses on covering end-user facing links, not developer documentation.
# This means we cover the smp/e, pswi, and zwe content.
# The lychee toml files are set to ignore links which popped up in comments or variables.
permissions: read-all

name: Link Check CI

on:
pull_request:
types: [opened, synchronize]
push:
branches:
- 'v3.x/staging'
- 'v2.x/staging'
workflow_dispatch:

jobs:
lychee-link-check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@f81112d0d2814ded911bd23e3beaa9dda9093915 # v2.1.0
with:
fail: true
format: json
output: lychee_output.json
args: --config ./.github/lychee.toml --no-progress --verbose --max-retries 10 'bin/**/*' 'smpe/**/*' 'workflows/**/*'

- name: Output failed links in console
id: quick-output
if: always()
run: |
if [[ -f "lychee_output.json" ]]; then
jq .fail_map lychee_output.json
else
echo "lychee command failed and didn't produce output"
fi
- name: Publish Output
id: publish
if: always()
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
with:
name: lychee_results.json
path: lychee_output.json
7 changes: 4 additions & 3 deletions .pax/pre-packaging.sh
Original file line number Diff line number Diff line change
Expand Up @@ -190,9 +190,10 @@ BASE_DIR=$(
pwd
) # <something>/.pax

# use node v16 to build
export NODE_HOME=/ZOWE/node/node-v16.20.1-os390-s390x

# use node v18 to build
export NODE_HOME=/ZOWE/node/node-v18.16.0
export JAVA_HOME=/ZOWE/node/J8.0_64
export PATH=$JAVA_HOME/bin:$PATH
ZOWE_ROOT_DIR="${BASE_DIR}/content"

cd "${BASE_DIR}"
Expand Down
2 changes: 1 addition & 1 deletion bin/libs/node.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export NODE_STDIN_CCSID=1047
# Workaround Fix for node 8.16.1 that requires compatibility mode for untagged files
export __UNTAGGED_READ_MODE=V6

NODE_MIN=16
NODE_MIN=18

ensure_node_is_on_path() {
if [[ ":${PATH}:" != *":${NODE_HOME}/bin:"* ]]; then
Expand Down
2 changes: 1 addition & 1 deletion bin/libs/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import * as shell from './shell';
import * as config from './config';
import { PathAPI as pathoid } from './pathoid';

const NODE_MIN_VERSION=16;
const NODE_MIN_VERSION=18;

// enforce encoding of stdio/stdout/stderr
// sometimes /dev/tty* ($SSH_TTY) are not configured properly, for example tagged as binary or wrong encoding
Expand Down
10 changes: 9 additions & 1 deletion manifest.json.template
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
"version": "~2.0.0-SNAPSHOT"
},
"org.zowe.licenses": {
"version": "2.3.0",
"version": "2.18.0",
"artifact": "zowe_licenses_full.zip"
}
},
Expand Down Expand Up @@ -391,6 +391,14 @@
"tag": "v2.x/master",
"destinations": ["Zowe PAX"]
}]
}, {
"componentGroup": "Zowe Client Python SDK",
"entries": [{
"repository": "zowe-client-python-sdk",
"core": false,
"tag": "main",
"destinations": ["Zowe Client Python SDK"]
}]
}
],
"imageDependencies": {
Expand Down
1 change: 1 addition & 0 deletions playbooks/group_vars/marist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ zowe_keystore_dir: /ZOWE/tmp/keystore
zowe_install_logs_dir: /ZOWE/tmp/logs
zowe_dataset_prefix: ZOWEAD3.ZWE
zowe_apiml_verify_certficates_of_services: false
zos_java_home: /ZOWE/node/J8.0_64
# enable Non-Strict verify certificates by default
zowe_apiml_nonstrict_verify_certficates_of_services: true
zowe_jcllib: ZOWEAD3.ZWE.JCLLIB
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*
* Copyright IBM Corporation 2022
* Copyright Zowe Contributors 2024
*/

import {
Expand All @@ -15,9 +15,8 @@ import {
} from '../../../utils';
import { TEST_TIMEOUT_CONVENIENCE_BUILD } from '../../../constants';

// Only runs on zzow11 at time of change (04.2023). See cicd-test.yml and make_matrix.sh.
const testServer = process.env.TEST_SERVER;
const testSuiteName = 'Test convenience build installation with node.js v18';
const testSuiteName = 'Test convenience build installation with node.js v22';
describe(testSuiteName, () => {
beforeAll(() => {
// validate variables
Expand All @@ -33,7 +32,7 @@ describe(testSuiteName, () => {
{
'zowe_build_local': process.env['ZOWE_BUILD_LOCAL'],
'zowe_custom_for_test': 'true',
'zos_node_home': '/ZOWE/node/node-v18.16.0',
'zos_node_home': '/ZOWE/node/node-v22.10.0',
'zowe_lock_keystore': 'false',
}
);
Expand Down
8 changes: 4 additions & 4 deletions workflows/files/ZWELOADC.xml
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
<![CDATA[
<p>Use this step to define the variables for RACF.</p>
<p>For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation here
<a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/mainframe-common-maintenance-procedures/1-0/configure-ca-smp-e-internet-service-retrieval/configure-ibm-racf-security.html">configure RACF security certificates</a>
<a href="a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/mainframe-common-maintenance-procedures/1-0/configure-ca-smp-e-internet-service-retrieval/obtain-the-certificates-for-ca-smp-e-internet-service-retrieval/configure-ibm-racf-security.html">configure RACF security certificates</a>
or there <a href="https://www.ibm.com/docs/en/zos/2.2.0?topic=syntax-racdcert-add-add-certificate">RACDCERT ADD (Add certificate) command</a>.</p>
]]></instructions>
<weight>1</weight>
Expand Down Expand Up @@ -252,7 +252,7 @@
<instructions substitution="false"><![CDATA[
<p>Use this step to define the variables for ACF2.</p>
<p>For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation
<a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/security/ca-acf2-for-z-os/16-0/administrating/digital-certificate-support/process-digital-certificates-with-ca-acf2.html#concept.dita_742faf19321a7e7286b7e3f9b1c1a66acb9562f7_INSERTSubcommand">configure ACF2 security certificates</a>.</p>
<a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/security/ca-acf2-for-z-os/16-0/administrating/digital-certificate-support/process-digital-certificates-with-acf2/insert-certificates.html">configure ACF2 security certificates</a>.</p>
]]></instructions>
<weight>1</weight>
<skills>Security Administrator</skills>
Expand Down Expand Up @@ -367,7 +367,7 @@
<instructions substitution="true"><![CDATA[
<p>This step will load signed client authentication certificate from the ${instance-output_dataset} into ESM</p>
<p>For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation here
<a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/mainframe-common-maintenance-procedures/1-0/configure-ca-smp-e-internet-service-retrieval/configure-ibm-racf-security.html">configure RACF security certificates</a> <br/>
<a href="a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/mainframe-common-maintenance-procedures/1-0/configure-ca-smp-e-internet-service-retrieval/obtain-the-certificates-for-ca-smp-e-internet-service-retrieval/configure-ibm-racf-security.html">configure RACF security certificates</a> <br/>
or there <a href="https://www.ibm.com/docs/en/zos/2.2.0?topic=syntax-racdcert-add-add-certificate">RACDCERT ADD (Add certificate) command</a>.</p>
]]></instructions>
<weight>1</weight>
Expand Down Expand Up @@ -452,7 +452,7 @@ DCDSN(${instance-output_dataset}) TRUST
<instructions substitution="true"><![CDATA[
<p>This step will load signed client authentication certificate from the ${instance-output_dataset} into ESM</p>
<p>For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation
<a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/security/ca-acf2-for-z-os/16-0/administrating/digital-certificate-support/process-digital-certificates-with-ca-acf2.html#concept.dita_742faf19321a7e7286b7e3f9b1c1a66acb9562f7_INSERTSubcommand">configure ACF2 security certificates</a>.</p>
<a href="https://techdocs.broadcom.com/us/en/ca-mainframe-software/security/ca-acf2-for-z-os/16-0/administrating/digital-certificate-support/process-digital-certificates-with-acf2/insert-certificates.html">configure ACF2 security certificates</a>.</p>
]]></instructions>
<weight>1</weight>
<skills>Security Administrator</skills>
Expand Down

0 comments on commit ed33ee6

Please sign in to comment.