-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
129 lines (111 loc) · 3.77 KB
/
Copy pathdeploy-dev-docs-mike.yml
File metadata and controls
129 lines (111 loc) · 3.77 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Docs / Deploy dev-docs with Mike
on:
workflow_call:
inputs:
action:
description: "Mike action to perform: deploy or delete."
required: true
type: string
version_label:
description: "Version label to deploy/delete, e.g. main or 3.0."
required: true
type: string
aliases:
description: "Space-separated aliases to assign on deploy, e.g. latest-release."
required: false
default: ""
type: string
default_label:
description: "If non-empty, run mike set-default with this label or alias after deploy."
required: false
default: ""
type: string
git_tag:
description: "Optional git tag whose deeplabcut package should be checked out before deploying."
required: false
default: ""
type: string
python-version:
description: Python version used for dev docs.
required: false
default: "3.10"
type: string
config-file:
description: MkDocs config file.
required: false
default: "dev-docs/mkdocs.yml"
type: string
deploy-prefix:
description: Mike deploy prefix.
required: false
default: "dev"
type: string
jobs:
mike:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Validate inputs
shell: bash
run: |
case "${{ inputs.action }}" in
deploy|delete)
;;
*)
echo "::error::Unsupported action '${{ inputs.action }}'. Expected 'deploy' or 'delete'."
exit 1
;;
esac
if [ "${{ inputs.action }}" = "deploy" ] && [ -z "${{ inputs.git_tag }}" ] && [ "${{ inputs.version_label }}" != "main" ]; then
echo "::error::git_tag is required when deploying non-'main' versions."
exit 1
fi
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Check out tagged package source
if: inputs.git_tag != ''
shell: bash
run: |
git checkout "${{ inputs.git_tag }}" -- deeplabcut
- name: Set up dev-docs environment
uses: ./.github/actions/setup-dev-docs
with:
python-version: ${{ inputs.python-version }}
install-system-deps: ${{ inputs.action != 'delete' }}
- name: Configure git for Mike
shell: bash
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Deploy dev-docs version
if: inputs.action == 'deploy'
shell: bash
run: |
if [ -n "${{ inputs.aliases }}" ]; then
mike deploy --push \
--config-file "${{ inputs.config-file }}" \
--deploy-prefix "${{ inputs.deploy-prefix }}" \
--update-aliases \
"${{ inputs.version_label }}" ${{ inputs.aliases }}
else
mike deploy --push \
--config-file "${{ inputs.config-file }}" \
--deploy-prefix "${{ inputs.deploy-prefix }}" \
"${{ inputs.version_label }}"
fi
if [ -n "${{ inputs.default_label }}" ]; then
mike set-default --push \
--config-file "${{ inputs.config-file }}" \
--deploy-prefix "${{ inputs.deploy-prefix }}" \
"${{ inputs.default_label }}"
fi
- name: Delete dev-docs version
if: inputs.action == 'delete'
shell: bash
run: |
mike delete --push \
--config-file "${{ inputs.config-file }}" \
--deploy-prefix "${{ inputs.deploy-prefix }}" \
"${{ inputs.version_label }}"