-
-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (106 loc) · 4.36 KB
/
ci.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
name: "CI/CD"
on:
workflow_dispatch:
inputs:
tag:
description: override release tag
required: false
push:
branches:
- "main"
- "alpha"
- "beta"
env:
CI: true
NX_DAEMON: false
NX_VERBOSE_LOGGING: true
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_AUTH_TOKEN }}
GITHUB_ACTOR: "🤖 Storm Bot"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
build-and-release:
if: github.repository == 'stormstack/stormstack' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/alpha' || github.ref == 'refs/heads/beta')
name: "Build & Release"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: configure git
run: |
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
- name: Setup pnpm
uses: pnpm/action-setup@v2.2.4
with:
version: 8
- uses: actions/setup-node@v3
with:
registry-url: https://registry.npmjs.org/
node-version-file: .github/.nvmrc
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install Dependencies
run: pnpm i
- name: Get appropriate base and head commits for `nx affected` commands
uses: nrwl/nx-set-shas@v3
with:
main-branch-name: "main"
- name: Set appropriate base and head commits for `nx affected` commands
run: |
echo "BASE: ${{ env.NX_BASE }}"
echo "HEAD: ${{ env.NX_HEAD }}"
- name: Prepare for build
run: pnpm build:tools-ci
#- name: Run Linters
# run: pnpm nx affected -t lint --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }}
- name: Run Formatters
run: pnpm nx format
# - run: npx nx affected -t lint --parallel=3
# - run: npx nx affected -t test --parallel=3 --configuration=ci --base=${{ github.event.before }}
- name: Build repository packages
run: pnpm nx affected -t build --parallel=3 --exclude="core-server-cloudflare,worker-*" --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }}
# run: pnpm nx affected -t build --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }}
#- name: Run Tests
# uses: nick-fields/retry@v2.8.3
# with:
# command: npx nx affected -t test --parallel=3 --configuration=ci --base=${{ github.event.before }}
# timeout_minutes: 10
# max_attempts: 3
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
- name: Release Library Version Updates
run: npx nx affected -t semantic-release --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }}
#- name: Release Repository Version Updates
# run: pnpm nx run-many --target=semantic-release --parallel=false
- name: Create Pull Request
uses: repo-sync/pull-request@v2
with:
destination_branch: main
pr_title: "chore(repo): Github CI/CD automated updates"
pr_body: "This changeset is the result of updates made in the repository's files via the CI/CD pipeline automatically. The changes include linting, formatting, and version updates."
github_token: ${{ secrets.GITHUB_TOKEN }}
# - name: Publish
# run: |
# git config --global user.name 'Pat Sullivan'
# git config --global user.email 'sullivanpj@users.noreply.github.com'
# npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
# npm run cipublish
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# TAG: ${{ inputs.tag }}
#- name: Release Library Version Updates
# run: npx nx affected -t semantic-release --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#- name: Release Repository Version Updates
# run: npm run semantic-release
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Build Latest Documentation
# run: npx nx run docs:build