refactor: Lock profiles during async operations (phase 1: filesystem) #13608
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: Zowe Explorer CI | |
on: | |
push: | |
paths: | |
- packages/zowe-explorer/** | |
- packages/zowe-explorer-api/** | |
- .github/workflows/zowe-explorer-ci.yml | |
pull_request: | |
paths: | |
- packages/zowe-explorer/** | |
- packages/zowe-explorer-api/** | |
- .github/workflows/zowe-explorer-ci.yml | |
jobs: | |
ze-build: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
concurrency: | |
group: ${{ matrix.os }}-node-${{ matrix.node-version }}-ze-ci-${{ github.ref }} | |
cancel-in-progress: true | |
strategy: | |
# Continue to run tests on the other systems if one fails | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x, 22.x] | |
# order operating systems from best to worst | |
os: [windows-latest, ubuntu-22.04, macos-latest] | |
if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) && !contains(github.event.head_commit.message, '[ci skip]') | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
# install pnpm | |
- run: npm install -g pnpm@8 | |
- run: pnpm config set network-timeout 60000 && pnpm install | |
- run: pnpm build | |
id: build | |
- run: pnpm test | |
env: | |
CI: true | |
NODE_OPTIONS: --max_old_space_size=4096 | |
- name: Unlock Keyring | |
id: unlock-keyring | |
if: matrix.os == 'ubuntu-22.04' && matrix.node-version == '20.x' | |
uses: t1m0thyj/unlock-keyring@v1 | |
- name: Integration tests | |
if: matrix.os == 'ubuntu-22.04' && matrix.node-version == '20.x' | |
run: xvfb-run pnpm test:integration --exclude "Activation.feature" | |
working-directory: packages/zowe-explorer | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: always() && steps.build.outcome == 'success' && matrix.os == 'ubuntu-22.04' && matrix.node-version == '20.x' | |
with: | |
name: zowe-explorer-results | |
path: | | |
packages/zowe-explorer/results/ | |
packages/zowe-explorer/__tests__/__integration__/bdd/results/ | |
- name: Upload API test results | |
uses: actions/upload-artifact@v4 | |
if: always() && steps.build.outcome == 'success' && matrix.os == 'ubuntu-22.04' && matrix.node-version == '20.x' | |
with: | |
name: zowe-explorer-api-results | |
path: packages/zowe-explorer-api/results/ | |
- name: Upload Results to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
env_vars: OS,NODE | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Package VSIX | |
if: matrix.os == 'ubuntu-22.04' && matrix.node-version == '20.x' | |
run: pnpm package | |
working-directory: packages/zowe-explorer | |
- name: Archive VSIX artifact | |
if: matrix.os == 'ubuntu-22.04' && matrix.node-version == '20.x' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: zowe-explorer-vsix | |
path: dist/*.vsix |