Skip to content

Build sample-iframe-app workflow #90

Build sample-iframe-app workflow

Build sample-iframe-app workflow #90

Workflow file for this run

name: Build sample-iframe-app workflow
on:
push:
branches:
- v2.x/staging
- v2.x/rc
- v2.x/main
pull_request:
types: [opened, reopened, synchronize]
workflow_dispatch:
inputs:
BRANCH_NAME:
description: 'Specify branch name or PR (e.g. PR-41)'
required: false
BUILD_VERSION:
description: 'Specify version you would like to build or override'
required: false
PERFORM_RELEASE:
type: boolean
description: 'Perform release, Defauls is false'
required: false
jobs:
check-permission:
runs-on: ubuntu-latest
steps:
# this action will fail the whole workflow if permission check fails
- name: check permission
uses: zowe-actions/shared-actions/permission-check@main
with:
user: ${{ github.actor }}
github-repo: ${{ github.repository }}
github-token: ${{ secrets.GITHUB_TOKEN }}
check_changelog:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: copy-repo
fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }}
- name: Get changed files
id: changed-files
run: |
cd copy-repo
if ${{ github.event_name == 'pull_request' }}; then
echo "changed_files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT
else
echo "changed_files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
fi
- name: List changed files
id: set-flag
run: |
cd copy-repo
for file in ${{ steps.changed-files.outputs.changed_files }}; do
echo "$file was changed"
if [[ $file == "CHANGELOG.md" ]]
then
echo "file-flag=true" >> $GITHUB_OUTPUT
break;
else
echo "file-flag=false" >> $GITHUB_OUTPUT
fi
done
- name: Check if CHANGELOG is Updated and Abort if not updated
if: steps.set-flag.outputs.file-flag != 'true'
run: |
echo "CHANGELOG.md not updated, please update CHANGELOG.md with the changes made in the pull request"
exit 1
- name: Remove copy-repo
if: always()
run: rm -r copy-repo
build:
runs-on: ubuntu-latest
needs: check-permission
steps:
- name: '[Prep 1] Checkout'
uses: actions/checkout@v2
- name: '[Prep 2] Cache node modules'
uses: actions/cache@v2
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: |
~/.npm
~/.nvm/.cache
~/.nvm/versions
key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-cache-node-modules-
- name: '[Prep 3] Setup Node'
uses: actions/setup-node@v2
with:
node-version: 16.15.0
- name: '[Prep 4] Setup jFrog CLI'
uses: jfrog/setup-jfrog-cli@v2
env:
JF_ARTIFACTORY_1: ${{ secrets.JF_ARTIFACTORY_TOKEN }}
- name: '[Prep 5] prepare workflow'
uses: zowe-actions/zlux-builds/plugins/[email protected]/main
with:
github-user: ${{ secrets.ZOWE_ROBOT_USER }}
github-password: ${{ secrets.ZOWE_ROBOT_TOKEN }}
github-email: ${{ secrets.ZOWE_ROBOT_EMAIL }}
github-branch: ${{ github.event.inputs.BRANCH_NAME }}
release: ${{ github.event.inputs.PERFORM_RELEASE }}
plugin-version: ${{ github.event.inputs.BUILD_VERSION }}
- name: '[Prep 6] build'
uses: zowe-actions/zlux-builds/plugins/[email protected]/main
with:
build-zss: false
- name: '[Prep 7] packaging'
uses: zowe-actions/zlux-builds/plugins/[email protected]/main
with:
pax-ssh-username: ${{ secrets.SSH_MARIST_USERNAME }}
pax-ssh-password: ${{ secrets.SSH_MARIST_RACF_PASSWORD }}
pax-name: sample-iframe-app
- name: '[Prep 8] deploy '
uses: zowe-actions/zlux-builds/plugins/[email protected]/main
- name: '[Prep 9] Bump Staging Version '
if: ${{ github.event.inputs.PERFORM_RELEASE == 'true' && env.RELEASE == 'true' }}
uses: zowe-actions/zlux-builds/plugins/[email protected]/main
env:
GITHUB_TOKEN: ${{ secrets.ZOWE_ROBOT_TOKEN }}
- name: '[Prep 10] NodeJS project setup'
if: ${{ github.event.inputs.PERFORM_RELEASE == 'true' && env.RELEASE == 'true' }}
uses: zowe-actions/zlux-builds/plugins/[email protected]/main
with:
package-name: 'org.zowe.zlux-iframe-file-tree'
install-registry-url: ${{ env.DEFAULT_NPM_PRIVATE_INSTALL_REGISTRY }}
install-registry-email: ${{ secrets.NPM_PRIVATE_REGISTRY_EMAIL }}
install-registry-username: ${{ secrets.NPM_PRIVATE_REGISTRY_USERNAME }}
install-registry-password: ${{ secrets.NPM_PRIVATE_REGISTRY_PASSWORD }}
publish-registry-email: ${{ secrets.NPM_PRIVATE_REGISTRY_EMAIL }}
publish-registry-username: ${{ secrets.NPM_PRIVATE_REGISTRY_USERNAME }}
publish-registry-password: ${{ secrets.NPM_PRIVATE_REGISTRY_PASSWORD }}
- name: '[Prep 11] Publish NPM Package '
if: ${{ github.event.inputs.PERFORM_RELEASE == 'true' && env.RELEASE == 'true' }}
uses: zowe-actions/zlux-builds/plugins/[email protected]/main