-
Notifications
You must be signed in to change notification settings - Fork 4
114 lines (99 loc) · 3.55 KB
/
build-cli-tools.yml
File metadata and controls
114 lines (99 loc) · 3.55 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
name: Build CLI tools
on:
repository_dispatch:
types: [build-cli]
env:
PROJECT_ID: ${{ secrets.PROJECT_ID }}
KSAPI_URL: ${{ github.event.client_payload.url }}
AUTH_PROXY: https://europe-west6-${{ secrets.PROJECT_ID }}.cloudfunctions.net/auth-proxy/
REF: ${{ github.event.client_payload.ref }}
TAG: ${{ github.event.client_payload.tag }}
jobs:
snapcraft:
runs-on: ubuntu-20.04
steps:
- name: Print Inputs
run: |
echo "${{ toJSON(github.event.client_payload) }}"
- name: Checkout
uses: actions/checkout@v2
with:
ref: ${{ env.REF }}
- name: Load Secrets
uses: wearedevx/keystone-action@main
id: load_secrets
with:
token: ${{ secrets.DEPLOY_GITHUB_TOKEN }}
keystone_slot_1: ${{ secrets.KEYSTONE_PROD_SLOT_1 }}
keystone_slot_2: ${{ secrets.KEYSTONE_PROD_SLOT_2 }}
keystone_slot_3: ${{ secrets.KEYSTONE_PROD_SLOT_3 }}
keystone_slot_4: ${{ secrets.KEYSTONE_PROD_SLOT_4 }}
keystone_slot_5: ${{ secrets.KEYSTONE_PROD_SLOT_5 }}
- name: Setup Working Directory
run: |
cd cli
mkdir snap
sh deploy/gen_snapcraft.sh
go mod edit -dropreplace github.com/wearedevx/keystone/api
go get github.com/wearedevx/keystone/api@${{ env.TAG }}
go mod edit -replace github.com/wearedevx/keystone/api=../api
env:
BRANCH: ${{ env.TAG }}
#
KSAPI_URL: ${{ env.KSAPI_URL }}
AUTH_PROXY: ${{ env.AUTH_PROXY }}
#
VERSION: ${{ env.TAG }}
- name: Install Snapcraft dependencies
run: |
sudo apt install libvshadow-utils pkg-config
- name: Snapcraft Build
uses: snapcore/action-build@v1.0.9
with:
path: cli/
id: snapcraft
- name: Snapcraft Package
run: |
unsquashfs ${{ steps.snapcraft.outputs.snap }}
snapcraft pack ./squashfs-root -o ${{ steps.snapcraft.outputs.snap }}
- name: Upload Snap Artifact
uses: actions/upload-artifact@v2
with:
name: ks-snap
path: ${{ steps.snapcraft.outputs.snap }}
- name: Snapcraft Release Type
id: release_type
env:
BRANCH: ${{ env.TAG }}
run: |-
if [ $BRANCH == 'develop' ]; then
echo "::set-output name=release_type::edge"
else
echo "::set-output name=release_type::stable"
fi
- name: Snapcraft Publish Edge
if: ${{ steps.release_type.outputs.release_type == 'edge' }}
uses: snapcore/action-publish@v1
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ env.SNAPCRAFT_STORE_CREDENTIALS }}
with:
snap: ${{ steps.snapcraft.outputs.snap }}
release: edge
- name: Snapcraft Publish Stable
if: ${{ steps.release_type.outputs.release_type == 'stable' }}
uses: snapcore/action-publish@v1
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ env.SNAPCRAFT_STORE_CREDENTIALS }}
with:
snap: ${{ steps.snapcraft.outputs.snap }}
release: stable
homebrew:
runs-on: ubuntu-latest
steps:
- name: Dispatch Builds
uses: peter-evans/repository-dispatch@v1.0.0
with:
token: ${{ secrets.DEPLOY_GITHUB_TOKEN }}
repository: wearedevx/homebrew-keystone
event-type: homebrew-deploy
client-payload: '{"url": "${{ env.KSAPI_URL }}", "auth_proxy": "${{ env.AUTH_PROXY }}", "ref": "${{ env.REF }}", "tag": "${{ env.TAG }}"}'