-
Notifications
You must be signed in to change notification settings - Fork 3
130 lines (111 loc) · 3.34 KB
/
dashboard-build-extension.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
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Dashboard - Build and Release Extension
on:
push:
branches:
- main
paths:
- dashboard/pkg/epinio/package.json
pull_request:
branches:
- main
paths:
- dashboard/**
defaults:
run:
shell: bash
working-directory: ./dashboard
env:
ACTIONS_RUNNER_DEBUG: true
CI_COMMIT_MESSAGE: CI Build Artifacts
# should match branches from `on` triggers
DEFAULT_BRANCH: main
# should match default `working-directory`
APP_ROOT: ./dashboard
jobs:
build:
name: Build extension artifact
runs-on: ubuntu-latest
permissions: write-all
outputs:
SHOULD_RELEASE: ${{ steps.should-release.outputs.SHOULD_RELEASE }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Setup Helm
uses: azure/setup-helm@v3
with:
version: v3.8.0
- name: Setup yq
uses: chrisdickinson/[email protected]
with:
yq-version: v4.28.2
- name: Setup Nodejs and npm
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Setup yarn
run: npm install -g yarn
- name: Setup Nodejs with yarn caching
uses: actions/setup-node@v3
with:
node-version: '16'
cache: yarn
cache-dependency-path: '${{ env.APP_ROOT }}/yarn.lock'
- name: Install dependencies
run: yarn
- name: Run build script
shell: bash
id: build_script
run: |
yarn publish-pkgs -s "${{ github.repository }}" -b gh-pages
- name: Upload charts artifact
if: github.ref == 'refs/heads/${{ env.DEFAULT_BRANCH }}' && github.event_name != 'pull_request'
uses: actions/upload-artifact@v3
with:
name: charts
path: ${{ env.APP_ROOT }}/tmp
- name: Should Release
id: should-release
if: github.ref == 'refs/heads/${{ env.DEFAULT_BRANCH }}' && github.event_name != 'pull_request'
run: |
echo "SHOULD_RELEASE=true" >> "$GITHUB_OUTPUT"
release:
name: Release Build
if: needs.build.outputs.SHOULD_RELEASE == 'true' && github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: gh-pages
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Download build artifact
uses: actions/download-artifact@v3
with:
name: charts
path: ${{ env.APP_ROOT }}
- name: Commit build
working-directory: ./
run: |
cp -R ${{ env.APP_ROOT }}/{assets,charts,extensions,index.yaml} ./
git add ./{assets,charts,extensions,index.yaml} --force
git commit -a -m "${{ env.CI_COMMIT_MESSAGE }}"
git push
- name: Run chart-releaser
uses: helm/[email protected]
with:
charts_dir: ${{ env.APP_ROOT }}/charts/*
env:
CR_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
CR_SKIP_EXISTING: true