Skip to content

v2.0.15

v2.0.15 #198

Workflow file for this run

name: Build and Test Workflow
on:
push:
branches:
- v2.x/master
pull_request:
types: [opened, reopened, synchronize]
workflow_dispatch:
inputs:
PERFORM_RELEASE:
description: '[Release] perform release'
required: false
default: '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:
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-test:
runs-on: ubuntu-latest
needs: check-permission
steps:
- name: '[Prep 1] Checkout'
uses: actions/checkout@v3
- name: '[Dep 1] Libyaml'
uses: actions/checkout@v3
with:
repository: yaml/libyaml
path: deps/launcher/libyaml
ref: '0.2.5'
- name: '[Dep 2] Quickjs'
uses: actions/checkout@v3
with:
repository: joenemo/quickjs-portable
path: deps/launcher/quickjs
ref: 'main'
- name: '[Dep 3] Zowe common'
uses: actions/checkout@v3
with:
repository: zowe/zowe-common-c
path: deps/launcher/common
ref: 'v2.x/staging'
- name: '[Prep 2] Setup jFrog CLI'
uses: jfrog/setup-jfrog-cli@v2
env:
JF_ENV_1: ${{ secrets.JF_ARTIFACTORY_TOKEN }}
- name: 'convert manifest'
run: |
COMMIT_HASH=$(git rev-parse --verify HEAD)
CURRENT_TIME=$(date +%s%3N)
if [ -z ${{ github.event.pull_request.number }} ]
then
CURRENT_BRANCH=${GITHUB_REF#refs/heads/}
else
CURRENT_BRANCH=PR-${{ github.event.pull_request.number }}
fi
sed -e "s|{{build\.branch}}|${CURRENT_BRANCH}|g" \
-e "s|{{build\.number}}|${{ github.run_number }}|g" \
-e "s|{{build\.commitHash}}|${COMMIT_HASH}|g" \
-e "s|{{build\.timestamp}}|${CURRENT_TIME}|g" \
manifest.yaml > manifest.yaml.tmp
mv manifest.yaml.tmp manifest.yaml
echo "Current manifest.yaml is:"
cat manifest.yaml
- name: '[Prep 3] Prepare workflow'
uses: zowe-actions/shared-actions/prepare-workflow@main
- name: '[Packaging] Make pax'
uses: zowe-actions/shared-actions/make-pax@main
with:
pax-name: 'launcher'
pax-options: '-x os390'
pax-ssh-username: ${{ secrets.SSH_MARIST_USERNAME }}
pax-ssh-password: ${{ secrets.SSH_MARIST_RACF_PASSWORD }}
- name: '[Publish] Publish'
uses: zowe-actions/shared-actions/publish@main
if: success()
with:
artifacts: |
.pax/launcher.pax
perform-release: ${{ github.event.inputs.PERFORM_RELEASE }}
- name: '[Release 1] Release (if necessary)'
if: ${{ success() && github.event.inputs.PERFORM_RELEASE == 'true' && env.IS_RELEASE_BRANCH == 'true' }}
uses: zowe-actions/shared-actions/release@main
- name: '[Release 2] NPM bump version (if necessary)'
if: ${{ success() && github.event.inputs.PERFORM_RELEASE == 'true' && env.IS_RELEASE_BRANCH == 'true' && env.IS_FORMAL_RELEASE_BRANCH == 'true' && env.PRE_RELEASE_STRING == ''}}
uses: zowe-actions/shared-actions/bump-version@main
env:
GITHUB_TOKEN: ${{ secrets.ZOWE_ROBOT_TOKEN }}