# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. on: pull_request: branches: [ main ] push: branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: determine-matrix: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - name: Checkout code uses: actions/checkout@v4 - id: set-matrix run: | $obj = @{ languagePack = Get-ChildItem i18n | ForEach-Object Name } "matrix=$($obj | ConvertTo-Json -Depth 100 -Compress)" >> $env:GITHUB_OUTPUT shell: pwsh build: name: Build needs: determine-matrix runs-on: ubuntu-latest strategy: matrix: ${{fromJSON(needs.determine-matrix.outputs.matrix)}} steps: - name: Checkout code uses: actions/checkout@v4 - name: Generate Name run: node -e "console.log('PACKAGE_NAME=' + require('./i18n/${{ matrix.languagePack }}/package.json').name + '-v' + require('./i18n/${{ matrix.languagePack }}/package.json').version)" >> $GITHUB_ENV - name: Install run: cd ./i18n/${{ matrix.languagePack }} && npm i - name: Build Extension run: cd ./i18n/${{ matrix.languagePack }} && npx @vscode/vsce package -o ${{ env.PACKAGE_NAME }}.vsix - name: Publish Test Artifact uses: actions/upload-artifact@v4 with: name: ${{ env.PACKAGE_NAME }}.vsix path: ./i18n/${{ matrix.languagePack }}/${{ env.PACKAGE_NAME }}.vsix