name: Code Samples on: push: branches: [ main ] paths: [ 'code_samples/**','.github/workflows/code-samples.yml' ] pull_request: paths: [ 'code_samples/**','.github/workflows/code-samples.yml' ] jobs: checkout: name: Checkout runs-on: ubuntu-latest steps: - name: Fetch Sources uses: actions/checkout@v4 samples: name: Code Samples / ${{ matrix.plugin }} needs: checkout runs-on: ubuntu-latest strategy: fail-fast: false matrix: plugin: - action_basics - comparing_string_references_inspection - conditional_operator_intention - editor_basics - facet_basics - framework_basics - live_templates - max_opened_projects - module - project_model - project_view_pane - project_wizard - psi_demo - run_configuration - settings - simple_language_plugin - tool_window - tree_structure_provider steps: - name: Fetch Sources uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: zulu java-version: 17 - name: Build Plugin run: (cd code_samples/${{ matrix.plugin }}; ./gradlew buildPlugin) - name: Test Plugin run: (cd code_samples/${{ matrix.plugin }}; ./gradlew test) - name: Export Properties id: properties shell: bash run: | echo "pluginVerifierHomeDir=~/.pluginVerifier" >> $GITHUB_OUTPUT - name: Run Plugin Verifier run: | echo " tasks { verifyPlugin { freeArgs.set(listOf(\"-mute\", \"TemplateWordInPluginId\")) } } " >> code_samples/${{ matrix.plugin }}/build.gradle.kts cd code_samples/${{ matrix.plugin }} ./gradlew verifyPlugin -Pplugin.verifier.home.dir=${{ steps.properties.outputs.pluginVerifierHomeDir }} - name: Collect Plugin Verifier Result if: ${{ always() }} uses: actions/upload-artifact@v4 with: name: ${{ matrix.plugin }}-pluginVerifier-result path: ${{ github.workspace }}/code_samples/${{ matrix.plugin }}/build/reports/pluginVerifier mirror: name: Code Samples Mirror if: github.ref == 'refs/heads/main' && github.repository == 'JetBrains/intellij-sdk-docs' needs: samples runs-on: ubuntu-latest steps: - name: Install SSH key uses: shimataro/ssh-key-action@v2 with: key: ${{ secrets.SSH_KEY }} known_hosts: ${{ secrets.KNOWN_HOSTS }} - name: Prepare Mirror run: | git clone --bare git@github.com:JetBrains/intellij-sdk-docs.git . git branch | grep -v "main" | xargs -r git branch -D git filter-branch --prune-empty --subdirectory-filter code_samples main git push --mirror git@github.com:JetBrains/intellij-sdk-code-samples.git