-
Notifications
You must be signed in to change notification settings - Fork 10
72 lines (68 loc) · 2.91 KB
/
create_release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# This is a basic workflow that is manually triggered
name: Create Release
# Controls when the action will run. Workflow runs when manually triggered using the UI
# or API.
on:
workflow_dispatch:
# Inputs the workflow accepts.
inputs:
release_name:
# Friendly description to be shown in the UI instead of 'name'
description: 'Release Name'
# Input has to be provided for the workflow to run
required: true
# The data type of the input
type: string
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "greet"
create_release:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Runs a single command using the runners shell
- name: Send greeting
run: echo "Hello ${{ inputs.release_name }}"
- name: Checkout code
uses: actions/checkout@v2
with:
token: ${{ secrets.PUSH_KEY }}
- name: Update manifest.json
run: |
release_name="${{ inputs.release_name }}"
version="${release_name#v}"
download_url="https://github.com/${{ github.repository }}/releases/download/${release_name}/trust.zip"
jq --arg url "$download_url" --arg version "$version" '.download_url = $url | .version = $version' manifest.json > temp.json
mv temp.json manifest.json
git config --global user.name 'cyrite'
git config --global user.email '[email protected]'
git add manifest.json
if git diff-index --quiet HEAD; then
echo "No changes to commit"
else
git commit -m "Update version and download_url in manifest.json for release ${{ inputs.release_name }}"
git push origin main
fi
- name: Zip Folder
run: zip -r trust.zip . -x ".git/*" ".github/*" "generate_readme.sh"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: ${{ inputs.release_name }}
draft: true
prerelease: false
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./trust.zip
asset_name: trust.zip
asset_content_type: application/zip