| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- name: Test Plugin Build
- on:
- push:
- branches: [ dev ]
- pull_request:
- branches: [ dev ]
- jobs:
- build-and-test:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node-version: [16.x, 18.x, 20.x]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- cache: 'npm'
- - name: Install dependencies
- run: npm ci
- - name: Check TypeScript compilation
- run: npm run compile
- - name: Run tests (compile check)
- run: npm test
- - name: Package extension
- run: npm run package
- - name: Upload package as artifact
- if: matrix.node-version == '20.x'
- uses: actions/upload-artifact@v4
- with:
- name: xmake-vscode-${{ matrix.node-version }}.vsix
- path: "*.vsix"
- retention-days: 30
- # Test on different platforms
- test-platforms:
- runs-on: ${{ matrix.os }}
- needs: build-and-test
- strategy:
- matrix:
- os: [ubuntu-latest, windows-latest, macos-latest]
- node-version: [20.x]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- cache: 'npm'
- - name: Install dependencies
- run: npm ci
- - name: Test compilation on ${{ matrix.os }}
- run: npm run compile
- - name: Package extension on ${{ matrix.os }}
- run: npm run package
- - name: Upload platform-specific package
- uses: actions/upload-artifact@v4
- with:
- name: xmake-vscode-${{ matrix.os }}.vsix
- path: "*.vsix"
- retention-days: 7
|