update README, add support for reusing draft release
This commit is contained in:
		
							parent
							
								
									62bb848510
								
							
						
					
					
						commit
						af317de1da
					
				
							
								
								
									
										38
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								README.md
									
									
									
									
									
								
							@ -13,6 +13,11 @@ You must provide:
 | 
			
		||||
- `tag`: The tag to uploaded into. If you want the current event's tag, use `${{ github.ref }}`
 | 
			
		||||
- `overwrite`: If an asset with the same name already exists, overwrite it.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Optional Arguments
 | 
			
		||||
 | 
			
		||||
 - `draft`: The release will be marked as a draft if this is set
 | 
			
		||||
 - `file_glob`: If set to true, the file argument can be a glob pattern (asset_name is ignored in this case)
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
This usage assumes you want to build on tag creations only.
 | 
			
		||||
@ -92,3 +97,36 @@ jobs:
 | 
			
		||||
        asset_name: ${{ matrix.asset_name }}
 | 
			
		||||
        tag: ${{ github.ref }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Example with file_glob and draft
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
name: Publish
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags:
 | 
			
		||||
      - '*'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    name: Publish binaries
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: hecrj/setup-rust-action@v1-release
 | 
			
		||||
      with:
 | 
			
		||||
        rust-version: stable
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - name: Build
 | 
			
		||||
      run: cargo build --release
 | 
			
		||||
    - name: Upload binaries to release
 | 
			
		||||
      uses: svenstaro/upload-release-action@v1-release
 | 
			
		||||
      with:
 | 
			
		||||
        repo_token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        file: target/release/my*
 | 
			
		||||
        tag: ${{ github.ref }}
 | 
			
		||||
        overwrite: true
 | 
			
		||||
        draft: true
 | 
			
		||||
        file_glob: true
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								lib/main.js
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lib/main.js
									
									
									
									
									
								
							@ -29,6 +29,19 @@ function get_release_by_tag(tag, octokit, context, draft) {
 | 
			
		||||
        catch (error) {
 | 
			
		||||
            // If this returns 404, we need to create the release first.
 | 
			
		||||
            if (error.status === 404) {
 | 
			
		||||
                // if there is a draft release already, use that 
 | 
			
		||||
                if (draft) {
 | 
			
		||||
                    const releases = yield octokit.repos.listReleases(Object.assign({}, context.repo));
 | 
			
		||||
                    core.debug(`Found ${releases.length} releases, looking for draft release to piggyback..`);
 | 
			
		||||
                    for (let i = 0; i < releases.length; i += 1) {
 | 
			
		||||
                        const release = releases[i];
 | 
			
		||||
                        if (release.data.draft) {
 | 
			
		||||
                            core.debug(`Found draft release in repo, name: ${release.data.name}`);
 | 
			
		||||
                            return release;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                // otherwise create a release (draft if necessary)
 | 
			
		||||
                core.debug(`Release for tag ${tag} doesn't exist yet so we'll create it now.`);
 | 
			
		||||
                return yield octokit.repos.createRelease(Object.assign({}, context.repo, { tag_name: tag, draft }));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/main.ts
									
									
									
									
									
								
							@ -15,6 +15,21 @@ async function get_release_by_tag(tag: string, octokit: any, context: any, draft
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        // If this returns 404, we need to create the release first.
 | 
			
		||||
        if (error.status === 404) {
 | 
			
		||||
            // if there is a draft release already, use that 
 | 
			
		||||
            if (draft) {
 | 
			
		||||
                const releases = await octokit.repos.listReleases({
 | 
			
		||||
                    ...context.repo,
 | 
			
		||||
                });
 | 
			
		||||
                core.debug(`Found ${releases.length} releases, looking for draft release to piggyback..`)
 | 
			
		||||
                for (let i = 0; i < releases.length; i += 1) {
 | 
			
		||||
                    const release = releases[i];
 | 
			
		||||
                    if (release.data.draft) {
 | 
			
		||||
                        core.debug(`Found draft release in repo, name: ${release.data.name}`)
 | 
			
		||||
                        return release;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // otherwise create a release (draft if necessary)
 | 
			
		||||
            core.debug(`Release for tag ${tag} doesn't exist yet so we'll create it now.`)
 | 
			
		||||
            return await octokit.repos.createRelease({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user