-
Notifications
You must be signed in to change notification settings - Fork 0
157 lines (141 loc) · 4.44 KB
/
test.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: Test
on:
push:
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Init check
if: ${{ github.repository != 'AmazeeLabs/silverback-template'}}
run:
echo 'Please run the INIT script. See the root README.md for
instructions.' && false
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup
uses: ./.github/actions/setup
- name: Check formatting
run: pnpm test:format
- name: TurboRepo local server
uses: felixmosh/turborepo-gh-artifacts@v2
with:
server-token: 'local'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Test
run: pnpm turbo:test
env:
TURBO_API: 'http://127.0.0.1:9080'
TURBO_TOKEN: 'local'
TURBO_TEAM: 'local'
- name: 'Logs: cms'
run: cat /tmp/cms.log || true
if: always()
- name: 'Logs: website'
run: cat /tmp/website.log || true
if: always()
- name: 'Logs: preview'
run: cat /tmp/preview.log || true
if: always()
- name: Upload Playwright report
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-report
path: tests/e2e/playwright-report/
retention-days: 3
- name: Check for Chromatic project token
id: chromatic-check
shell: bash
run: |
if [ "${{ secrets.CHROMATIC_PROJECT_TOKEN }}" != '' ]; then
echo "available=true" >> $GITHUB_OUTPUT;
else
echo "available=false" >> $GITHUB_OUTPUT;
fi
- name: Publish to Chromatic
uses: chromaui/action@v11
with:
token: ${{ secrets.GITHUB_TOKEN }}
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
storybookBuildDir: packages/ui/storybook-static
storybookBaseDir: packages/ui
onlyChanged: true
exitOnceUploaded: true
externals: |
static/stories/webforms/**
if:
${{ steps.chromatic-check.outputs.available == 'true' &&
github.ref != 'refs/heads/dev' }}
- name: Deploy storybook to netlify
run:
pnpm run --filter=@custom/ui build && npx netlify-cli deploy --prod
--filter @custom/ui --dir=packages/ui/storybook-static
env:
VITEST_CLOUDINARY_CLOUDNAME: local
NETLIFY_SITE_ID: ${{ vars.NETLIFY_STORYBOOK_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
if:
${{ github.ref == 'refs/heads/dev' && vars.NETLIFY_STORYBOOK_ID != ''
}}
- name: Merge release to prod (silverback-template only)
uses: devmasx/[email protected]
if:
${{ github.repository == 'AmazeeLabs/silverback-template' &&
github.ref == 'refs/heads/release'}}
with:
type: now
from_branch: release
target_branch: prod
github_token: ${{ secrets.GITHUB_TOKEN }}
update_dashboard:
name: Update dashboard
if: github.ref == 'refs/heads/release' && vars.JIRA_PROJECT_ID != ''
runs-on: ubuntu-latest
steps:
- name: Install estimator
run: npm install -g @amazeelabs/estimator
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update dashboard
env:
JIRA_PROJECT_ID: ${{ vars.JIRA_PROJECT_ID }}
DASHBOARD_ACCESS_TOKEN: ${{ secrets.DASHBOARD_ACCESS_TOKEN }}
run: amazeelabs-estimator update
docker_build:
name: Docker Build
if:
startsWith(github.ref_name, 'test-all/') || startsWith(github.head_ref,
'test-all/')
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2
bundler-cache: true
- name: Install Pygmy
run: gem install pygmy
- name: Start Pygmy
run: pygmy up
- name: Docker Build & Up
run: DOCKER_BUILDKIT=1 docker-compose up -d --build
- name: Wait a bit
run: sleep 5
- name: Check containers status
run: |
if docker-compose ps | grep Exit
then
echo "Docker container(s) exited"
exit 1
else
echo "Docker containers running"
fi