Skip to content

Update node.yml

Update node.yml #270

Workflow file for this run

name: 'node'
on:
workflow_dispatch:
pull_request:
paths-ignore:
- 'orb/**'
- 'gradle/**'
- 'src/**'
- 'build.gradle.kts'
- 'settings.gradle.kts'
- 'gradle.properties'
- 'gradlew'
- 'gradlew.bat'
- '.github/workflows/gradle.yml'
push:
branches:
- main
- 'releases/*'
paths-ignore:
- 'orb/**'
- 'gradle/**'
- 'src/**'
- 'build.gradle.kts'
- 'settings.gradle.kts'
- 'gradle.properties'
- 'gradlew'
- 'gradlew.bat'
- '.github/workflows/gradle.yml'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Set Node.js 16.x
uses: actions/setup-node@v4.0.2
with:
node-version: 16.x
- name: Install dependencies
run: npm ci && npm run build
- name: Rebuild scan/dist/
run: cd scan && npm run package
- name: Compare the expected and actual dist/ directories
run: |
if [ "$(git diff --ignore-space-at-eol scan/dist/ | wc -l)" -gt "0" ]; then
echo "Detected uncommitted changes after build. See status below:"
git diff
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m ":bricks: Update \`scan/dist/index.js\`"
git push
exit 1
fi
id: diffscan
# If index.js was different from expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v4
if: ${{ failure() && steps.diffscan.conclusion == 'failure' }}
with:
name: dist
path: scan/dist/
- name: Rebuild vsts/QodanaScan/
run: cd vsts && npm run package
- name: Compare the expected and actual QodanaScan/ directories
run: |
if [ "$(git diff --ignore-space-at-eol vsts/QodanaScan/ | wc -l)" -gt
"0" ]; then
echo "Detected uncommitted changes after build. See status below:"
git diff
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m ":bricks: Update \`vsts/QodanaScan/index.js\`"
git push
exit 1
fi
id: diffvsts
- uses: actions/upload-artifact@v4
if: ${{ failure() && steps.diffvsts.conclusion == 'failure' }}
with:
name: dist
path: vsts/QodanaScan/
- name: Lint the code
run: npm run lint
build-test:
runs-on: '${{ matrix.os }}'
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
needs: [ lint ]
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build && npm run test
test-action:
runs-on: ${{ matrix.os }}
needs: [lint, build-test]
strategy:
matrix:
os: [ubuntu-latest]
directory: [
'tests/cpp', 'tests/dotnet', 'tests/duplicates', 'tests/go', 'tests/java', 'tests/js', 'tests/py_error'
]
arguments: ['']
pr: [ 'true', 'false' ]
include:
- directory: 'tests/dotnet'
arguments: '--ide,QDNET'
os: 'windows-latest'
pr: 'false'
- directory: 'tests/dotnet'
arguments: '--ide,QDNET'
os: 'windows-latest'
pr: 'true'
- directory: 'tests/dotnet'
os: 'ubuntu-latest'
arguments: '-l,jetbrains/qodana-cdnet:2024.1-eap'
pr: 'false' # TODO: add true when pr-mode is available for dotnet-community
- directory: 'tests/java'
arguments: '-l,jetbrains/qodana-jvm-community'
os: 'ubuntu-latest'
pr: 'true'
- directory: 'tests/java'
arguments: '-l,jetbrains/qodana-jvm-community'
os: 'ubuntu-latest'
pr: 'false'
- directory: 'tests/java'
arguments: '-l,jetbrains/qodana-jvm-android'
os: 'ubuntu-latest'
pr: 'true'
- directory: 'tests/java'
arguments: '-l,jetbrains/qodana-jvm-android'
os: 'ubuntu-latest'
pr: 'false'
- directory: 'tests/py_error'
arguments: '-l,jetbrains/qodana-python-community'
os: 'ubuntu-latest'
pr: 'true'
- directory: 'tests/py_error'
arguments: '-l,jetbrains/qodana-python-community'
os: 'ubuntu-latest'
pr: 'false'
exclude: # TODO: remove this block when pr-mode is available for clang
- directory: 'tests/cpp'
arguments: ''
os: 'ubuntu-latest'
pr: 'true'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/checkout@v4
with:
repository: 'JetBrains/code-analytics-examples'
fetch-depth: 0
path: 'tests'
- name: Emulate pull request
run: |
git config --global user.name qodana-bot
git config --global user.email qodana-support@jetbrains.com
git init
git remote add origin https://github.com/JetBrains/code-analytics-examples.git
echo "test" > README.md
git add README.md
git commit -m "Initial commit"
QODANA_PR_SHA=$(git rev-parse HEAD)
echo "QODANA_PR_SHA=$QODANA_PR_SHA" >> $GITHUB_ENV
git checkout -b new-feature
git add .
git commit -m "Add new feature"
working-directory: '${{ matrix.directory }}'
shell: bash
- name: Qodana
uses: ./
with:
args: ${{ format('-i,{0},{1}', matrix.directory, matrix.arguments) }}
pr-mode: ${{ matrix.pr }}
post-pr-comment: false
use-annotations: false
use-caches: false
use-nightly: true
env:
QODANA_TOKEN: ${{ secrets.QODANA_PROJECT_TESTS_TOKEN }}
QODANA_PR_SHA: ${{ env.QODANA_PR_SHA }}
- name: Show logs
continue-on-error: true
run: cat ${{ runner.temp }}/qodana/results/log/idea.log
- name: Show diff
continue-on-error: true
run: cat C:\Users\RUNNER~1\AppData\Local\Temp\diff-scope.txt*
azure-dev-release:
runs-on: ubuntu-latest
needs: [ lint, build-test ]
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
azure-dev:
- "vsts/vss-extension.dev.json"
- name: Set Node.js 12.x
if: steps.filter.outputs.azure-dev == 'true'
uses: actions/setup-node@v4.0.2
with:
node-version: 12.x
- name: Install dependencies
if: steps.filter.outputs.azure-dev == 'true'
run: cd vsts && npm install && cd QodanaScan && npm install && npm i -g tfx-cli
- name: Package and publish
id: publisher-run
if: steps.filter.outputs.azure-dev == 'true'
continue-on-error: true
run: |
cd vsts && npm run azure-dev
mv JetBrains.qodana-dev-*.vsix qodana-dev.vsix
tfx extension publish --publisher JetBrains --vsix qodana-dev.vsix --share-with qodana-demo -t $AZURE_TOKEN
env:
AZURE_TOKEN: ${{ secrets.AZURE_TOKEN }}
- name: Upload vsix
if: steps.filter.outputs.azure-dev == 'true'
uses: actions/upload-artifact@v4
with:
name: qodana-dev.vsix
path: vsts/qodana-dev.vsix