mirror of
				https://github.com/JonasKruckenberg/tauri-build.git
				synced 2025-10-31 03:03:55 +00:00 
			
		
		
		
	update docs files
This commit is contained in:
		
							parent
							
								
									632a1e9f33
								
							
						
					
					
						commit
						1b13a2fbb8
					
				
							
								
								
									
										13
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								LICENSE
									
									
									
									
									
								
							| @ -1,7 +1,6 @@ | ||||
| MIT License | ||||
| 
 | ||||
| The MIT License (MIT) | ||||
| 
 | ||||
| Copyright (c) 2018 GitHub, Inc. and contributors | ||||
| Copyright (c) 2022 Jonas Kruckenberg | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| @ -10,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in | ||||
| all copies or substantial portions of the Software. | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
| THE SOFTWARE. | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										224
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										224
									
								
								README.md
									
									
									
									
									
								
							| @ -1,24 +1,236 @@ | ||||
| <p align="center"> | ||||
|   <h1>tauri-build</h1> | ||||
|   <a href="https://github.com/actions/typescript-action/actions"><img alt="typescript-action status" src="https://github.com/actions/typescript-action/workflows/build-test/badge.svg"></a> | ||||
| </p> | ||||
| 
 | ||||
| A composable action to build your Tauri project. | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| As opposed to the offical [tauri-action](https://github.com/tauri-apps/tauri-action) this action is as minimal as possible.  | ||||
| Instead of creating a GitHub release and uploading artifacts all-in-one, it provides outputs to conveniently compose together with other actions such as `actions/upload-artifact`, `actions/download-artifact` or `softprops/action-gh-release`. | ||||
| 
 | ||||
| ### Minimal | ||||
| 
 | ||||
| The following example workflow builds artifacts on all 3 supported platforms (Window, macOS and Linux). | ||||
| 
 | ||||
| ```yaml | ||||
| name: 'publish' | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - release | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.ref }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   build-binaries: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: [macos-latest, ubuntu-latest, windows-latest] | ||||
| 
 | ||||
|     runs-on: ${{ matrix.platform }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: setup node | ||||
|         uses: actions/setup-node@v1 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: install Rust stable | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
| 
 | ||||
|       - name: install dependencies (ubuntu only) | ||||
|         if: matrix.platform == 'ubuntu-latest' | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf | ||||
| 
 | ||||
|       - uses: JonasKruckenberg/tauri-build@v0.1.2-beta.9 | ||||
|         id: tauri_build | ||||
| 
 | ||||
|     # You can now use the JSON array of artifacts under `steps.tauri_build.outputs.artifacts` to post-process/upload your bundles | ||||
| ``` | ||||
| 
 | ||||
| ### Bundling the app and creating a release | ||||
| 
 | ||||
| Chances are you want to do *something* with the artifacts that you produced. The following action will produce artifacts for Windows, macOS and Linux upload them as workflow artifacts, so that a final job (called `publish`) can create a GitHub release and attach all prouced artifacts to it. This would also be the place where you could upload artifacts to an AWS Bucket or similar. | ||||
| 
 | ||||
| ```yaml | ||||
| name: 'publish' | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - release | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.ref }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   build-binaries: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: [macos-latest, ubuntu-latest, windows-latest] | ||||
| 
 | ||||
|     runs-on: ${{ matrix.platform }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: setup node | ||||
|         uses: actions/setup-node@v1 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: install Rust stable | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
| 
 | ||||
|       - name: install dependencies (ubuntu only) | ||||
|         if: matrix.platform == 'ubuntu-latest' | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf | ||||
| 
 | ||||
|       - uses: JonasKruckenberg/tauri-build@v0.1.2-beta.9 | ||||
|         id: tauri_build | ||||
| 
 | ||||
|       # The `artifacts` output can now be used by a different action to upload the artifacts | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: artifacts | ||||
|           path: "${{ join(fromJSON(steps.tauri_build.outputs.artifacts), '\n') }}" | ||||
| 
 | ||||
|   publish: | ||||
|     needs: build-binaries | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
|       # Download the previously uploaded artifacts | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         id: download | ||||
|         with: | ||||
|           name: artifacts | ||||
|           path: artifacts | ||||
|       # And create a release with the artifacts attached | ||||
|       - name: 'create release' | ||||
|         uses: softprops/action-gh-release@master | ||||
|         env: | ||||
|           GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | ||||
|         with: | ||||
|           draft: false | ||||
|           files: ./artifacts/**/* | ||||
| ``` | ||||
| 
 | ||||
| ### Building for Apple Silicon | ||||
| 
 | ||||
| This example workflow will run produce binaries for Apple Silicon (aarch64) as well as the previously shown 3 platforms. This leverages the build matrix. This can be expanded to produce binaries for other target combinations too. | ||||
| 
 | ||||
| ```yaml | ||||
| name: 'publish' | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - release | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.ref }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   build-binaries: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: [macos-latest, ubuntu-latest, windows-latest] | ||||
|         include: | ||||
|           - os: ubuntu-latest | ||||
|             rust_target: x86_64-unknown-linux-gnu | ||||
|           - os: macos-latest | ||||
|             rust_target: x86_64-apple-darwin | ||||
|           - os: macos-latest | ||||
|             rust_target: aarch64-apple-darwin | ||||
|           - os: windows-latest | ||||
|             rust_target: x86_64-pc-windows-msvc | ||||
| 
 | ||||
|     runs-on: ${{ matrix.platform }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: setup node | ||||
|         uses: actions/setup-node@v1 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: install Rust stable | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
| 
 | ||||
|       - name: install dependencies (ubuntu only) | ||||
|         if: matrix.platform == 'ubuntu-latest' | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf | ||||
| 
 | ||||
|       - uses: JonasKruckenberg/tauri-build@v0.1.2-beta.9 | ||||
|         id: tauri_build | ||||
|         with: | ||||
|           target: ${{ matrix.rust_target }} | ||||
| 
 | ||||
|       # The `artifacts` output can now be used by a different action to upload the artifacts | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: artifacts | ||||
|           path: "${{ join(fromJSON(steps.tauri_build.outputs.artifacts), '\n') }}" | ||||
| 
 | ||||
|   publish: | ||||
|     needs: build-binaries | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
|       # Download the previously uploaded artifacts | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         id: download | ||||
|         with: | ||||
|           name: artifacts | ||||
|           path: artifacts | ||||
|       # And create a release with the artifacts attached | ||||
|       - name: 'create release' | ||||
|         uses: softprops/action-gh-release@master | ||||
|         env: | ||||
|           GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | ||||
|         with: | ||||
|           draft: false | ||||
|           files: ./artifacts/**/* | ||||
| ``` | ||||
| 
 | ||||
| ## Inputs | ||||
| 
 | ||||
| | Name          | Type    | Description                                                 | Default           | | ||||
| |---------------|---------|-------------------------------------------------------------|-------------------| | ||||
| | ------------- | ------- | ----------------------------------------------------------- | ----------------- | | ||||
| | `runner`      | String  | Binary to use to build the application                      |                   | | ||||
| | `args`        | String  | Additional arguments for the build command                  |                   | | ||||
| | `projectPath` | String  | Path to the root of the Tauri project                       | .                 | | ||||
| | `configPath`  | String  | Path to the tauri.conf.json file, relative to `projectPath` | `tauri.conf.json` | | ||||
| | `target`      | String  | Rust target triple to build against                         |                   | | ||||
| | `debug`       | Boolean | Wether to build *debug* or *release* binaries               | false             | | ||||
| | `debug`       | Boolean | Wether to build _debug_ or _release_ binaries               | false             | | ||||
| 
 | ||||
| ## Outputs | ||||
| 
 | ||||
| | Name        | Type   | Description                                                | | ||||
| |-------------|--------|------------------------------------------------------------| | ||||
| | ----------- | ------ | ---------------------------------------------------------- | | ||||
| | `artifacts` | String | JSON array of artifact paths produced by the build command | | ||||
| 
 | ||||
| ## Permissions | ||||
| @ -28,4 +240,8 @@ This Action requires the following permissions on the GitHub integration token: | ||||
| ```yaml | ||||
| permissions: | ||||
|   contents: write | ||||
| ``` | ||||
| ``` | ||||
| 
 | ||||
| ## License | ||||
| 
 | ||||
| [MIT © Jonas Kruckenberg](./LICENSE) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user