Parameters options
Example action/workflow
compsite action action.yaml
action.yamlname: 'Example action'
description: 'An example `action.yaml` file for the purpose of documentation'
author: 'watermarkhu'
branding:
icon: 'package'
color: 'blue'
inputs:
input-string:
description: 'A string input parameter'
required: true
input-number:
description: 'A numeric input parameter'
required: false
default: '42'
input-boolean:
description: 'A boolean input parameter'
required: false
default: 'false'
outputs:
output-string:
description: 'A string output from the action'
value: 'result-value'
output-number:
description: 'A numeric output from the action'
value: '123'
runs:
using: 'composite'
steps:
- name: Execute action logic
run: |
echo "input-string=${{ inputs.input-string }}" >> $GITHUB_OUTPUT
echo "output-number=123" >> $GITHUB_OUTPUT
echo "output-json={\"key\": \"value\", \"number\": 456}" >> $GITHUB_OUTPUT
shell: bash
reusable workflow .github/workflows/example_workflow.yml
.github/workflows/example_workflow.ymlname: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
Whether to show inputs in the documentation.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Whether to show only required inputs in the documentation.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
show_outputs
Whether to show outputs in the documentation.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Outputs:
Name |
Description |
deployment-id
|
ID of the created deployment
|
deployment-url
|
URL of the deployment
|
success
|
Whether the deployment was successful
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
show_secrets
Whether to show secrets in the documentation.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
show_secrets_only_required
Whether to show only required secrets in the documentation.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
parameters_order
The parameters ordering to use.
alphabetical
: order by the parameters names,
source
: order parameters as they appear in the source file.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
configuration
|
JSON configuration object
|
{}
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
environment
|
Environment to deploy to
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
version
|
Version to deploy
|
latest
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
parameters_section_style
The style used to render docstring sections.
table
: render parameters in a table,
list
: render parameters in a list.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
-
environment
- required
-
version
Default: latest
-
enable-notifications
Default: False
-
parallel-jobs
Default: 1
-
configuration
JSON configuration object
Default: {}
Secrets:
-
API_KEY
- required
API key for external service
-
DATABASE_URL
Database connection string
-
SLACK_WEBHOOK
Slack webhook URL for notifications
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
parameters_anchors
Whether to add anchors to parameters in the documentation.
Cross linking parameters
It is possible to cross-link parameters within the yaml descriptions by a markdown link in the format [text](#<domain>.<name>)
.
E.g. the input my_input
can be linked with [text](#inputs.my_input)
the secret MY_SECRET
is linked with [text](#secrets.MY_SECRET)
.
Preview
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|
Example workflow
uses: watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
with:
environment: ''
This key is illegal but will still be parsed
Inputs:
Name |
Description |
Default |
environment
|
Environment to deploy to
|
|
version
|
Version to deploy
|
latest
|
enable-notifications
|
Whether to send notifications. Requires SLACK_WEBHOOK to be set.
|
|
parallel-jobs
|
Number of parallel jobs
|
1
|
configuration
|
JSON configuration object
|
{}
|
Secrets:
Name |
Description |
API_KEY
|
API key for external service
|
DATABASE_URL
|
Database connection string
|
SLACK_WEBHOOK
|
Slack webhook URL for notifications
|
Source of watermarkhu/mkdocstrings-github/.github/workflows/example_workflow.yml@v1
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 | name: 'Example workflow'
description: "This key is illegal but will still be parsed"
on:
workflow_call:
inputs:
environment:
description: 'Environment to deploy to'
required: true
type: string
version:
description: 'Version to deploy'
required: false
type: string
default: 'latest'
enable-notifications:
description: 'Whether to send notifications. Requires [`SLACK_WEBHOOK`](#secrets.SLACK_WEBHOOK) to be set.'
required: false
type: boolean
default: false
parallel-jobs:
description: 'Number of parallel jobs'
required: false
type: number
default: 1
configuration:
description: 'JSON configuration object'
required: false
type: string
default: '{}'
secrets:
API_KEY:
description: 'API key for external service'
required: true
DATABASE_URL:
description: 'Database connection string'
required: false
SLACK_WEBHOOK:
description: 'Slack webhook URL for notifications'
required: false
outputs:
deployment-id:
description: 'ID of the created deployment'
value: ${{ jobs.deploy.outputs.deployment-id }}
deployment-url:
description: 'URL of the deployment'
value: ${{ jobs.deploy.outputs.deployment-url }}
success:
description: 'Whether the deployment was successful'
value: ${{ jobs.deploy.outputs.success }}
permissions:
contents: read
deployments: write
pull-requests: write
issues: read
env:
DEPLOYMENT_ENVIRONMENT: ${{ inputs.environment }}
ENABLE_DEBUG: false
jobs:
validate:
name: 'Validate Inputs'
runs-on: ubuntu-latest
steps:
- name: Validate environment
run: |
echo "Validating environment: ${{ inputs.environment }}"
if [[ ! "${{ inputs.environment }}" =~ ^(development|staging|production)$ ]]; then
echo "Error: Invalid environment specified"
exit 1
fi
- name: Validate version
run: |
echo "Validating version: ${{ inputs.version }}"
- name: Check secrets
run: |
if [[ -z "${{ secrets.API_KEY }}" ]]; then
echo "Error: API_KEY secret is required"
exit 1
fi
echo "All required secrets are available"
deploy:
name: 'Deploy Application'
runs-on: ubuntu-latest
needs: validate
outputs:
deployment-id: ${{ steps.deploy.outputs.deployment-id }}
deployment-url: ${{ steps.deploy.outputs.deployment-url }}
success: ${{ steps.deploy.outputs.success }}
steps:
- name: Setup deployment
run: |
echo "Setting up deployment for ${{ inputs.environment }}"
echo "Version: ${{ inputs.version }}"
echo "Parallel jobs: ${{ inputs.parallel-jobs }}"
echo "Notifications enabled: ${{ inputs.enable-notifications }}"
- name: Parse configuration
run: |
echo "Configuration: ${{ inputs.configuration }}"
- name: Execute deployment
id: deploy
run: |
deployment_id="reusable-deploy-$(date +%s)"
deployment_url="https://${{ inputs.environment }}.example.com"
echo "deployment-id=${deployment_id}" >> $GITHUB_OUTPUT
echo "deployment-url=${deployment_url}" >> $GITHUB_OUTPUT
echo "success=true" >> $GITHUB_OUTPUT
echo "Deployment completed successfully"
echo "ID: ${deployment_id}"
echo "URL: ${deployment_url}"
notify:
name: 'Send Notifications'
runs-on: ubuntu-latest
needs: deploy
if: ${{ inputs.enable-notifications }}
steps:
- name: Send Slack notification
run: |
echo "Sending Slack notification about deployment ${{ needs.deploy.outputs.deployment-id }}"
- name: Create GitHub deployment
run: |
echo "Creating GitHub deployment status for ${{ needs.deploy.outputs.deployment-id }}"
|