License Bundle Generation #33
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: License Bundle Generation | |
permissions: read-all | |
on: | |
workflow_dispatch: | |
inputs: | |
zowe_version: | |
description: Version number of Zowe license bundle | |
type: string | |
required: true | |
default: '2.13.0' | |
publish_release: | |
description: Should the license bundle be published to libs-release-local | |
type: boolean | |
required: true | |
default: false | |
overwrite_release: | |
description: Should the license bundle overwrite and replace an existing artifact | |
type: boolean | |
required: false | |
default: false | |
release_suffix: | |
description: Should the license bundle have a suffix (useful during RC testing) | |
type: string | |
required: false | |
default: '' | |
zowe_sources_branch: | |
description: The branch of zowe-install-packaging used to determine sources included in the scan | |
required: true | |
default: 'v2.x/rc' | |
env: | |
PUBLISH_RELEASE: ${{ github.event.inputs.publish_release }} | |
RELEASE_SUFFIX: ${{ github.event.inputs.release_suffix }} | |
REPLACE_EXISTING_RELEASE: ${{ github.event.inputs.replace_release }} | |
ZOWE_RELEASE_BRANCH: ${{ github.event.inputs.zowe_sources_branch }} | |
PENDING_APPROVAL_REPORT_NAME: dependency_approval_action_aggregates.json | |
DEPENDENCY_SCAN_HOME: licenses/dependency-scan | |
MARKDOWN_REPORT_NAME: markdown_dependency_report.md | |
MARKDOWN_CLI_REPORT: cli_dependency_report.md | |
MARKDOWN_ZOS_REPORT: zos_dependency_report.md | |
NOTICES_AGGREGATE_FILE: notices_aggregate.txt | |
NOTICES_CLI_FILE: notices_cli.txt | |
NOTICES_ZOS_FILE: notices_zos.txt | |
ARTIFACT_REPO: libs-snapshot-local | |
ARTIFACT_PATH: org/zowe/licenses | |
VERSION: ${{ github.event.inputs.zowe_version }} | |
# Below may be modified depending on inputs | |
ARTIFACT_VERSION: ${{ github.event.inputs.zowe_version }}-SNAPSHOT | |
AGG_ARTIFACT_NAME: zowe_licenses_full-SNAPSHOT.zip | |
CLI_ARTIFACT_NAME: zowe_licenses_cli-SNAPSHOT.zip | |
ZOS_ARTIFACT_NAME: zowe_licenses_zos-SNAPSHOT.zip | |
FILENAME_PATTERN: init_in_step_one | |
jobs: | |
create-licenses: | |
runs-on: ubuntu-latest | |
container: | |
image: zowe-docker-snapshot.jfrog.io/ompzowe/license-scan-build:v2x | |
steps: | |
- name: Update variables if releasing | |
shell: bash | |
run: | | |
if [[ "$PUBLISH_RELEASE" = true ]]; then | |
echo "ARTIFACT_REPO=libs-release-local" >> $GITHUB_OUTPUT | |
echo "ARTIFACT_VERSION=$VERSION" >> $GITHUB_OUTPUT | |
echo "AGG_ARTIFACT_NAME=zowe_licenses_full.zip" >> $GITHUB_OUTPUT | |
echo "CLI_ARTIFACT_NAME=zowe_licenses_cli.zip" >> $GITHUB_OUTPUT | |
echo "ZOS_ARTIFACT_NAME=zowe_licenses_zos.zip" >> $GITHUB_OUTPUT | |
echo "FILENAME_PATTERN={filename}${{ env.RELEASE_SUFFIX }}{fileext}" >> $GITHUB_OUTPUT | |
else | |
echo "FILENAME_PATTERN={filename}-${{ env.ARTIFACT_VERSION }}{fileext}" >> $GITHUB_OUTPUT | |
fi | |
- name: Checkout current repo | |
uses: actions/checkout@v2 | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: '16' | |
- name: 'Install Ansible' | |
uses: zowe-actions/shared-actions/prepare-workflow@main | |
- name: '[Zowe Actions] Prepare workflow' | |
uses: zowe-actions/shared-actions/prepare-workflow@main | |
- name: 'Setup jFrog CLI' | |
uses: jfrog/setup-jfrog-cli@v2 | |
env: | |
JF_ENV_1: ${{ secrets.JF_ARTIFACTORY_TOKEN }} | |
- name: '[TEST-ONLY] Dummy scan step' | |
working-directory: ${{ env.DEPENDENCY_SCAN_HOME }} | |
run: | | |
mkdir -p zowe_licenses | |
mkdir -p zowe_cli_licenses | |
mkdir -p zowe_zos_licenses | |
echo "HI" >> dummy.txt | |
cp dummy.txt zowe_licenses | |
cp dummy.txt zowe_cli_licenses | |
cp dummy.txt zowe_zos_licenses | |
zip -j ${{ env.AGG_ARTIFACT_NAME }} zowe_licenses/* | |
zip -j ${{ env.CLI_ARTIFACT_NAME }} zowe_cli_licenses/* | |
zip -j ${{ env.ZOS_ARTIFACT_NAME }} zowe_zos_licenses/* | |
# - name: Scan Licenses on Branch ${{ env.ZOWE_RELEASE_BRANCH }} | |
# env: | |
# APP_NOTICES_SCAN: true | |
# APP_LICENSE_SCAN: true | |
# ZOWE_MANIFEST_BRANCH: ${{ env.ZOWE_RELEASE_BRANCH }} | |
# working-directory: ${{ env.DEPENDENCY_SCAN_HOME }} | |
# run: | | |
# yarn install && yarn build | |
# node lib/index.js | |
# cd build | |
# zip -r logs.zip logs/ | |
# zip -r license_reports.zip license_reports/ | |
# zip -r notice_reports.zip notice_reports/ | |
# cd .. | |
# mkdir -p zowe_licenses | |
# mkdir -p zowe_cli_licenses | |
# mkdir -p zowe_zos_licenses | |
# cp ../resources/* zowe_licenses/ | |
# cp ../resources/* zowe_cli_licenses/ | |
# cp ../resources/* zowe_zos_licenses/ | |
# # Aggregate | |
# cp build/notice_reports/${{ env.NOTICES_AGGREGATE_FILE }} zowe_licenses/zowe_full_notices.txt | |
# cp build/license_reports/${{ env.MARKDOWN_REPORT_NAME }} zowe_licenses/zowe_full_dependency_list.md | |
# zip -j ${{ env.AGG_ARTIFACT_NAME }} zowe_licenses/* | |
# # CLI | |
# cp build/notice_reports/${{ env.NOTICES_CLI_FILE }} zowe_cli_licenses/zowe_cli_notices.txt | |
# cp build/license_reports/${{ env.MARKDOWN_CLI_REPORT }} zowe_cli_licenses/zowe_cli_dependency_list.md | |
# zip -j ${{ env.CLI_ARTIFACT_NAME }} zowe_cli_licenses/* | |
# # z/OS | |
# cp build/notice_reports/${{ env.NOTICES_ZOS_FILE }} zowe_zos_licenses/zowe_zos_notices.txt | |
# cp build/license_reports/${{ env.MARKDOWN_ZOS_REPORT }} zowe_zos_licenses/zowe_zos_dependency_list.md | |
# zip -j ${{ env.ZOS_ARTIFACT_NAME }} zowe_zos_licenses/* | |
- name: Archive Aggregates | |
uses: actions/upload-artifact@v3 | |
with: | |
path: | | |
${{ env.DEPENDENCY_SCAN_HOME }}/${{ env.AGG_ARTIFACT_NAME }} | |
${{ env.DEPENDENCY_SCAN_HOME }}/${{ env.CLI_ARTIFACT_NAME }} | |
${{ env.DEPENDENCY_SCAN_HOME }}/${{ env.ZOS_ARTIFACT_NAME }} | |
- name: Remove existing artifacts | |
id: cleanup | |
if: ${{ github.event.inputs.publish_release }} && ${{ github.event.inputs.overwrite_release }} | |
run: | | |
jfrog rt del ${{ env.ARTIFACT_REPO }}/${{ env.ARTIFACT_PATH }}/${{ env.ARTIFACT_VERSION }}/${{ env.AGG_ARTIFACT_NAME }} | |
jfrog rt del ${{ env.ARTIFACT_REPO }}/${{ env.ARTIFACT_PATH }}/${{ env.ARTIFACT_VERSION }}/${{ env.CLI_ARTIFACT_NAME }} | |
jfrog rt del ${{ env.ARTIFACT_REPO }}/${{ env.ARTIFACT_PATH }}/${{ env.ARTIFACT_VERSION }}/${{ env.ZOS_ARTIFACT_NAME }} | |
- name: Publish to Artifactory | |
id: publish | |
timeout-minutes: 10 | |
uses: zowe-actions/shared-actions/publish@main | |
with: | |
publish-target-file-pattern: ${{ env.FILENAME_PATTERN }} | |
publish-target-path-pattern: ${{ env.ARTIFACT_REPO }}/${{ env.ARTIFACT_PATH }}/${{ env.ARTIFACT_VERSION }}/ | |
perform-release: ${{ env.PUBLISH_RELEASE }} | |
artifacts: | | |
${{ env.DEPENDENCY_SCAN_HOME }}/${{ env.AGG_ARTIFACT_NAME }} | |
${{ env.DEPENDENCY_SCAN_HOME }}/${{ env.CLI_ARTIFACT_NAME }} | |
${{ env.DEPENDENCY_SCAN_HOME }}/${{ env.ZOS_ARTIFACT_NAME }} |