-
-
Notifications
You must be signed in to change notification settings - Fork 107
136 lines (116 loc) · 4.17 KB
/
docs-deploy.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
name: "docs-deploy"
concurrency: "docs-deploy"
on:
push:
branches:
- stable
paths:
- 'docs/**'
workflow_run:
branches: [ main ]
workflows: [ 'release' ]
types: [ completed ]
workflow_dispatch:
env:
VSTEST_CONNECTION_TIMEOUT: 180
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: 1
TERM: xterm
jobs:
deploy:
name: 📃 Deploy new version bunit.dev
if: github.ref == 'refs/heads/stable' || ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: 🛒 Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.BUNIT_BOT_TOKEN }}
- name: ⚙️ Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.BUNIT_BOT_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.BUNIT_BOT_GPG_KEY_PASSPHRASE }}
- name: ⚙️ Setup CI GIT
run: |
git config user.name "${{ steps.import_gpg.outputs.name }}"
git config user.email ${{ steps.import_gpg.outputs.email }}
git config --global user.signingkey ${{ steps.import_gpg.outputs.keyid }}
git config --global commit.gpgsign true
- name: ⚙️ Setup GIT versioning
uses: dotnet/[email protected]
id: nbgv
with:
setAllVars: true
- name: 🛠️ Get Changelog Entry
id: changelog_reader
uses: mindsers/changelog-reader-action@v2
with:
path: ./CHANGELOG.md
- name: 🛠️ Update tokens in files
uses: cschleiden/replace-tokens@v1
with:
files: '["docs/site/*.md", "docs/**/*.md", "docs/**/docfx.json", "*.csproj", "**/*.csproj", "src/Directory.Build.props"]'
env:
RELEASE_VERSION: ${{ steps.changelog_reader.outputs.version }}
RELEASE_NOTES: ${{ steps.changelog_reader.outputs.changes }}
- name: ⚙️ Setup dotnet versions
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
3.1.x
5.0.x
6.0.x
7.0.x
8.0.x
9.0.x
- name: 🎨 Setup color
run: |
echo "DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION=1" >> $GITHUB_ENV
echo "TERM=xterm" >> $GITHUB_ENV
- name: 🛠️ Building bUnit
run: dotnet build /p:PublicRelease=true -c release
- name: 🛠️ Verify docs samples
run: dotnet test docs/samples/samples.sln
- name: 📄 Building docs
working-directory: ./docs/site
run: |
dotnet tool install --global docfx --version 2.74.1
docfx metadata --logLevel error
docfx build
- name: 🛠️ Deploy to GitHub Pages
if: success()
uses: crazy-max/ghaction-github-pages@v4
with:
build_dir: docs/site/_site
fqdn: bunit.dev
repo: bUnit-dev/bUnit-dev.github.io
target_branch: main
keep_history: false
jekyll: false
committer: "bUnit bot <[email protected]>"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_PAT: ${{ secrets.BUNIT_BOT_TOKEN }}
- name: ⏩ Merge stable with main, push origin
id: mergeMainline
continue-on-error: true
run: |
git checkout main
git merge -S stable
git push origin main
- name: ⏭ Create pull request from stable to main when direct merge fails
if: steps.mergeMainline.outcome == 'failure'
uses: thomaseizinger/[email protected]
with:
github_token: ${{ secrets.BUNIT_BOT_TOKEN }}
head: stable
base: main
title: Update main with documentation in stable
reviewers: ${{ github.actor }} # By default, we request a review from the person who triggered the workflow.
body: |
Hi @${{ github.actor }}
This PR was created because the [docs-deploy](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed to automatically merge stable into main.