mirror of
				https://hub.gitmirror.com/https://github.com/gradle/actions.git
				synced 2025-10-27 16:09:59 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Execute Gradle commands in Github Actions workflows
 | |
| 
 | |
| This Github Action can be used to run arbitrary Gradle commands on any platform supported by Github Actions.
 | |
| 
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| The following workflow will run `gradle build` using the wrapper from the repository on ubuntu, macos and windows:
 | |
| 
 | |
| ```yaml
 | |
| // .github/workflows/gradle-build-pr.yml
 | |
| name: Run Gradle on PRs
 | |
| on: pull-request
 | |
| jobs:
 | |
|   gradle:
 | |
|     strategy:
 | |
|       matrix:
 | |
|         os: [ubuntu-latest, macos-latest, windows-latest]
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - uses: actions/checkout@v1
 | |
|     - uses: actions/setup-java@v1
 | |
|       with:
 | |
|         java-version: 11
 | |
|     - uses: eskatos/gradle-command-action@v1
 | |
|       with:
 | |
|         arguments: build
 | |
| ```
 | |
| 
 | |
| ## Gradle arguments
 | |
| 
 | |
| The `arguments` input can used to pass arbitrary arguments to the `gradle` command line.
 | |
| 
 | |
| Here are some valid examples:
 | |
| ```yaml
 | |
| arguments: build
 | |
| arguments: check --scan
 | |
| arguments: some arbitrary tasks
 | |
| arguments: build -PgradleProperty=foo
 | |
| arguments: build -DsystemProperty=bar
 | |
| ....
 | |
| ```
 | |
| 
 | |
| See `gradle --help` for more information.
 | |
| 
 | |
| If you need to pass environment variables, simply use the Github Actions workflow syntax:
 | |
| 
 | |
| ```yaml
 | |
| - uses: eskatos/gradle-command-action@v1
 | |
|   env:
 | |
|     CI: true
 | |
| ```
 | |
| 
 | |
| ## Run a build from a different directory
 | |
| 
 | |
| ```yaml
 | |
| - uses: eskatos/gradle-command-action@v1
 | |
|   with:
 | |
|     build-root-directory: some/subdirectory
 | |
| ```
 | |
| 
 | |
| ## Use a Gradle wrapper from a different directory
 | |
|  
 | |
| ```yaml
 | |
|  - uses: eskatos/gradle-command-action@v1
 | |
|    with:
 | |
|      wrapper-directory: path/to/wrapper-directory
 | |
|  ```
 | |
| 
 | |
| ## Use a specific `gradle` executable
 | |
| 
 | |
| ```yaml
 | |
|  - uses: eskatos/gradle-command-action@v1
 | |
|    with:
 | |
|      gradle-executable: path/to/gradle
 | |
| ```
 | |
| 
 | |
| ## Setup and use a declared Gradle version
 | |
| 
 | |
| ```yaml
 | |
|  - uses: eskatos/gradle-command-action@v1
 | |
|    with:
 | |
|      gradle-version: 5.6.2
 | |
| ```
 | |
| 
 | |
| `gradle-version` can be set to any valid Gradle version.
 | |
| 
 | |
| Moreover, you can use the following aliases:
 | |
| 
 | |
| | Alias | Selects |
 | |
| | --- |---|
 | |
| | `current`      | The current [stable release](https://gradle.org/install/) |
 | |
| | `rc`      | The current [release candidate](https://gradle.org/release-candidate/) if any, otherwise fallback to `current` |
 | |
| | `nightly` | The latest [nightly](https://gradle.org/nightly/), fails if none. |
 | |
| | `release-nightly` | The latest [release nightly](https://gradle.org/release-nightly/), fails if none.      |
 | |
| 
 | |
| This can be handy to automatically test your build with the next Gradle version once a release candidate is out:
 | |
| 
 | |
| ```yaml
 | |
| // .github/workflows/test-gradle-rc.yml
 | |
| name: Test latest Gradle RC
 | |
| on:
 | |
|   schedule:
 | |
|     - cron: 0 0 * * * # daily
 | |
| jobs:
 | |
|   gradle-rc:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|     - uses: actions/checkout@v1
 | |
|     - uses: actions/setup-java@v1
 | |
|       with:
 | |
|         java-version: 11
 | |
|     - uses: eskatos/gradle-command-action@v1
 | |
|       with:
 | |
|         gradle-version: rc
 | |
|         arguments: build --dry-run # just test build configuration
 | |
| ```
 | |
| 
 | |
| # Build scans
 | |
| 
 | |
| If your build publishes a [build scan](https://gradle.com/build-scans/) the `gradle-command-action` action will emit the link to the published build scan as an output named `build-scan-url`.
 | |
| 
 | |
| You can then use that link in subsequent actions of your workflow.
 | 
