-
Notifications
You must be signed in to change notification settings - Fork 3
/
action.yml
31 lines (31 loc) · 1.64 KB
/
action.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
name: "Heroku Build"
description: "Deploy to Heroku using the Platform API"
branding:
icon: "upload-cloud"
color: "purple"
inputs:
app-name:
description: "Name of Heroku application"
required: true
api-key:
description: "API key with the deploy role"
required: true
path:
description: "Directory to upload"
required: false
default: "."
runs:
using: "composite"
steps:
- run: |
mkdir -p ${{ runner.temp }}/heroku-build && chmod -R 770 ${{ runner.temp }}/heroku-build
tar --warning=no-file-changed -czf ${{ runner.temp }}/heroku-build/release.tgz --exclude .git ${{ inputs.path }}
sources=`curl -X POST https://api.heroku.com/apps/${{ inputs.app-name }}/sources -H 'Accept: application/vnd.heroku+json; version=3' -H 'Authorization: Bearer ${{ inputs.api-key }}'`
get_url=`echo $(jq -r '.source_blob.get_url' <<< "$sources")`
put_url=`echo $(jq -r '.source_blob.put_url' <<< "$sources")`
curl $put_url -X PUT -H "Content-Type:" -H "Accept: application/vnd.heroku+json; version=3" --data-binary @${{ runner.temp }}/heroku-build/release.tgz
version=`git rev-parse HEAD`
builds=`curl -X POST https://api.heroku.com/apps/${{ inputs.app-name }}/builds -H 'Content-Type: application/json' -H 'Authorization: Bearer ${{ inputs.api-key }}' -H 'Accept: application/vnd.heroku+json; version=3' -d "{\"source_blob\":{\"url\":\"$get_url\",\"version\":\"$version\"}}"`
output_stream_url=`echo $(jq -r '.output_stream_url' <<< "$builds")`
curl -sSN $output_stream_url -H "Accept: application/vnd.heroku\+json; version=3" -H "User-Agent: github-actions"
shell: bash