mirror of
				https://github.com/JetBrains/intellij-platform-plugin-template.git
				synced 2025-06-13 13:04:09 +00:00 
			
		
		
		
	GitHub Actions general performance refactoring
This commit is contained in:
		
							parent
							
								
									badb6ae1db
								
							
						
					
					
						commit
						d8648e589d
					
				
							
								
								
									
										148
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										148
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@ -23,99 +23,10 @@ on:
 | 
			
		||||
jobs:
 | 
			
		||||
 | 
			
		||||
  # Run Gradle Wrapper Validation Action to verify the wrapper's checksum
 | 
			
		||||
  gradleValidation:
 | 
			
		||||
    name: Gradle Wrapper
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
      # Check out current repository
 | 
			
		||||
      - name: Fetch Sources
 | 
			
		||||
        uses: actions/checkout@v2.3.4
 | 
			
		||||
 | 
			
		||||
      # Validate wrapper
 | 
			
		||||
      - name: Gradle Wrapper Validation
 | 
			
		||||
        uses: gradle/wrapper-validation-action@v1.0.4
 | 
			
		||||
 | 
			
		||||
  # Run verifyPlugin and test Gradle tasks
 | 
			
		||||
  test:
 | 
			
		||||
    name: Test
 | 
			
		||||
    needs: gradleValidation
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
      # Check out current repository
 | 
			
		||||
      - name: Fetch Sources
 | 
			
		||||
        uses: actions/checkout@v2.3.4
 | 
			
		||||
 | 
			
		||||
      # Setup Java 11 environment for the next steps
 | 
			
		||||
      - name: Setup Java
 | 
			
		||||
        uses: actions/setup-java@v2
 | 
			
		||||
        with:
 | 
			
		||||
          distribution: zulu
 | 
			
		||||
          java-version: 11
 | 
			
		||||
          cache: gradle
 | 
			
		||||
 | 
			
		||||
      # Set environment variables
 | 
			
		||||
      - name: Export Properties
 | 
			
		||||
        id: properties
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          PROPERTIES="$(./gradlew properties --console=plain -q)"
 | 
			
		||||
          IDE_VERSIONS="$(echo "$PROPERTIES" | grep "^pluginVerifierIdeVersions:" | base64)"
 | 
			
		||||
 | 
			
		||||
          echo "::set-output name=ideVersions::$IDE_VERSIONS"
 | 
			
		||||
          echo "::set-output name=pluginVerifierHomeDir::~/.pluginVerifier"
 | 
			
		||||
 | 
			
		||||
      # Cache Plugin Verifier IDEs
 | 
			
		||||
      - name: Setup Plugin Verifier IDEs Cache
 | 
			
		||||
        uses: actions/cache@v2.1.6
 | 
			
		||||
        with:
 | 
			
		||||
          path: ${{ steps.properties.outputs.pluginVerifierHomeDir }}/ides
 | 
			
		||||
          key: plugin-verifier-${{ steps.properties.outputs.ideVersions }}
 | 
			
		||||
 | 
			
		||||
      # Run Qodana inspections
 | 
			
		||||
      - name: Qodana - Code Inspection
 | 
			
		||||
        uses: JetBrains/qodana-action@v2.1-eap
 | 
			
		||||
 | 
			
		||||
      # Collect Qodana Result
 | 
			
		||||
      - uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: qodana-result
 | 
			
		||||
          path: ${{ github.workspace }}/qodana
 | 
			
		||||
 | 
			
		||||
      # Run tests
 | 
			
		||||
      - name: Run Tests
 | 
			
		||||
        run: ./gradlew test
 | 
			
		||||
 | 
			
		||||
      # Collect Tests Result of failed tests
 | 
			
		||||
      - name: Collect Tests Result
 | 
			
		||||
        if: ${{ failure() }}
 | 
			
		||||
        uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: tests-result
 | 
			
		||||
          path: ${{ github.workspace }}/build/reports/tests
 | 
			
		||||
 | 
			
		||||
      # Run verifyPlugin Gradle task
 | 
			
		||||
      - name: Verify Plugin
 | 
			
		||||
        run: ./gradlew verifyPlugin
 | 
			
		||||
 | 
			
		||||
      # Run IntelliJ Plugin Verifier action using GitHub Action
 | 
			
		||||
      - name: Run Plugin Verifier
 | 
			
		||||
        run: ./gradlew runPluginVerifier -Pplugin.verifier.home.dir=${{ steps.properties.outputs.pluginVerifierHomeDir }}
 | 
			
		||||
 | 
			
		||||
      # Collect Plugin Verifier Result
 | 
			
		||||
      - name: Collect Plugin Verifier Result
 | 
			
		||||
        if: ${{ always() }}
 | 
			
		||||
        uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: pluginVerifier-result
 | 
			
		||||
          path: ${{ github.workspace }}/build/reports/pluginVerifier
 | 
			
		||||
 | 
			
		||||
  # Build plugin with buildPlugin Gradle task and provide the artifact for the next workflow jobs
 | 
			
		||||
  # Requires test job to be passed
 | 
			
		||||
  # Build plugin and provide the artifact for the next workflow jobs
 | 
			
		||||
  build:
 | 
			
		||||
    name: Build
 | 
			
		||||
    needs: test
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    outputs:
 | 
			
		||||
      version: ${{ steps.properties.outputs.version }}
 | 
			
		||||
@ -126,6 +37,10 @@ jobs:
 | 
			
		||||
      - name: Fetch Sources
 | 
			
		||||
        uses: actions/checkout@v2.3.4
 | 
			
		||||
 | 
			
		||||
      # Validate wrapper
 | 
			
		||||
      - name: Gradle Wrapper Validation
 | 
			
		||||
        uses: gradle/wrapper-validation-action@v1.0.4
 | 
			
		||||
 | 
			
		||||
      # Setup Java 11 environment for the next steps
 | 
			
		||||
      - name: Setup Java
 | 
			
		||||
        uses: actions/setup-java@v2
 | 
			
		||||
@ -150,16 +65,55 @@ jobs:
 | 
			
		||||
          echo "::set-output name=version::$VERSION"
 | 
			
		||||
          echo "::set-output name=name::$NAME"
 | 
			
		||||
          echo "::set-output name=changelog::$CHANGELOG"
 | 
			
		||||
          echo "::set-output name=pluginVerifierHomeDir::~/.pluginVerifier"
 | 
			
		||||
 | 
			
		||||
      # Build artifact using buildPlugin Gradle task
 | 
			
		||||
      - name: Build Plugin
 | 
			
		||||
        run: ./gradlew buildPlugin
 | 
			
		||||
          ./gradlew listProductsReleases # prepare list of IDEs for Plugin Verifier
 | 
			
		||||
 | 
			
		||||
      # Store built plugin as an artifact for downloading
 | 
			
		||||
      # Run tests
 | 
			
		||||
      - name: Run Tests
 | 
			
		||||
        run: ./gradlew test
 | 
			
		||||
 | 
			
		||||
      # Collect Tests Result of failed tests
 | 
			
		||||
      - name: Collect Tests Result
 | 
			
		||||
        if: ${{ failure() }}
 | 
			
		||||
        uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: tests-result
 | 
			
		||||
          path: ${{ github.workspace }}/build/reports/tests
 | 
			
		||||
 | 
			
		||||
      # Cache Plugin Verifier IDEs
 | 
			
		||||
      - name: Setup Plugin Verifier IDEs Cache
 | 
			
		||||
        uses: actions/cache@v2.1.6
 | 
			
		||||
        with:
 | 
			
		||||
          path: ${{ steps.properties.outputs.pluginVerifierHomeDir }}/ides
 | 
			
		||||
          key: plugin-verifier-${{ hashFiles("build/listProductsReleases.txt") }}
 | 
			
		||||
 | 
			
		||||
      # Run Verify Plugin task and IntelliJ Plugin Verifier tool
 | 
			
		||||
      - name: Run Plugin Verification tasks
 | 
			
		||||
        run: ./gradlew runPluginVerifier -Pplugin.verifier.home.dir=${{ steps.properties.outputs.pluginVerifierHomeDir }}
 | 
			
		||||
 | 
			
		||||
      # Collect Plugin Verifier Result
 | 
			
		||||
      - name: Collect Plugin Verifier Result
 | 
			
		||||
        if: ${{ always() }}
 | 
			
		||||
        uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: pluginVerifier-result
 | 
			
		||||
          path: ${{ github.workspace }}/build/reports/pluginVerifier
 | 
			
		||||
 | 
			
		||||
      # Run Qodana inspections
 | 
			
		||||
      - name: Qodana - Code Inspection
 | 
			
		||||
        uses: JetBrains/qodana-action@v2.1-eap
 | 
			
		||||
 | 
			
		||||
      # Collect Qodana Result
 | 
			
		||||
      - uses: actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name: qodana-result
 | 
			
		||||
          path: ${{ github.workspace }}/qodana
 | 
			
		||||
 | 
			
		||||
      # Store already-built plugin as an artifact for downloading
 | 
			
		||||
      - name: Upload artifacts
 | 
			
		||||
        uses: actions/upload-artifact@v2.2.4
 | 
			
		||||
        with:
 | 
			
		||||
          name: "${{ steps.properties.outputs.name }} - ${{ steps.properties.outputs.version }}"
 | 
			
		||||
          path: ./build/distributions/*
 | 
			
		||||
 | 
			
		||||
  # Prepare a draft release for GitHub Releases page for the manual verification
 | 
			
		||||
@ -171,10 +125,6 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
      # Check out current repository
 | 
			
		||||
      - name: Fetch Sources
 | 
			
		||||
        uses: actions/checkout@v2.3.4
 | 
			
		||||
 | 
			
		||||
      # Remove old release drafts by using the curl request for the available releases with draft flag
 | 
			
		||||
      - name: Remove Old Release Drafts
 | 
			
		||||
        env:
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,10 @@
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- Dependencies - upgrade `org.jetbrains.intellij` to `1.2.0`
 | 
			
		||||
- Update `pluginVerifierIdeVersions` to `2021.2.2`
 | 
			
		||||
- GitHub Actions general performance refactoring
 | 
			
		||||
 | 
			
		||||
### Removed
 | 
			
		||||
- Removed the `pluginVerifierIdeVersions` configuration to use default IDEs list provided by the `listProductsReleases` task for `runPluginVerifier` 
 | 
			
		||||
 | 
			
		||||
## [1.0.0]
 | 
			
		||||
### Added
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user