Skip to content

Merge pull request #109 from zowe/update-workflows #222

Merge pull request #109 from zowe/update-workflows

Merge pull request #109 from zowe/update-workflows #222

name: zowe-cli-plugin
on: [push, pull_request]
jobs:
test:
if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) && !contains(github.event.head_commit.message, '[ci skip]')
runs-on: ${{ matrix.os }}
timeout-minutes: 60
concurrency:
group: ${{ matrix.os }}-node-${{ matrix.node-version }}-ci-${{ github.ref }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
node-version: [18.x, 20.x]
os: [windows-latest, ubuntu-latest, macos-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Disable Lint Annotations
run: |
echo "::remove-matcher owner=eslint-compact::"
echo "::remove-matcher owner=eslint-stylish::"
- name: Install Dependencies
run: npm ci
- name: Build Source
id: build
run: npm run build
- name: Unit Tests
if: ${{ always() && steps.build.outcome == 'success' }}
run: npm run test:unit >> unit-tests.txt
- name: Unlock Keyring
if: ${{ always() && steps.build.outcome == 'success' && matrix.os == 'ubuntu-latest' }}
uses: t1m0thyj/unlock-keyring@v1
- name: Integration Tests
if: ${{ always() && steps.build.outcome == 'success' }}
run: npm run test:integration >> integration-tests.txt
- name: Setup Test Environment
if: ${{ always() && steps.build.outcome == 'success' }}
shell: bash
run: |
node scripts/setupTestProperties.js
npm run server:start &
- name: System Tests
if: ${{ always() && steps.build.outcome == 'success' }}
run: npm run test:system >> system-tests.txt
- name: Archive Results
id: upload
if: ${{ always() && steps.build.outcome == 'success' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-${{ matrix.node-version }}-results
path: |
__tests__/__results__/
unit-tests.txt
integration-tests.txt
system-tests.txt
release:
if: github.event_name == 'push' && github.ref_protected
needs: test
runs-on: ubuntu-latest
permissions:
issues: write
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
ref: ${{ github.ref }}
- name: Use Node LTS
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install Dependencies
run: npm ci
- name: Build Source
run: npm run build
- uses: zowe-actions/octorelease@v1
env:
GIT_COMMITTER_NAME: ${{ secrets.ZOWE_ROBOT_USER }}
GIT_COMMITTER_EMAIL: ${{ secrets.ZOWE_ROBOT_EMAIL }}
GIT_CREDENTIALS: x-access-token:${{ secrets.ZOWE_ROBOT_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
NPM_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
NPM_EMAIL: ${{ secrets.ZOWE_ROBOT_EMAIL }}