generated from ministryofjustice/template-repository
-
Notifications
You must be signed in to change notification settings - Fork 0
162 lines (153 loc) · 6.13 KB
/
oracle-db-statistics.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
158
159
160
161
162
name: "Oracle: Statisics"
run-name: "Oracle: ${{ github.event.inputs.TargetEnvironment }}-delius-oracle-statistics"
on:
workflow_dispatch:
inputs:
TargetEnvironment:
description: "Target environment"
required: true
type: choice
options:
- "delius-core-dev"
- "delius-core-test"
- "delius-core-training"
- "delius-core-stage"
- "delius-core-pre-prod"
- "delius-core-prod"
GatherNewStatistics:
description: "Gather new statistics for Delius database."
type: choice
default: "no"
options:
- "no"
- "yes"
GatherParallelism:
description: "Degree of Parallelism to use for gathering new statistics (ignored if GatherNewStatistics = no)."
type: choice
default: "2"
options:
- "1"
- "2"
- "4"
- "8"
- "16"
- "32"
ExportBackupStatisticsToS3:
description: "Use Data Pump to export a backup of the current statistics and copy the file to S3."
type: string
default: "no"
options:
- "no"
- "yes"
StatisticsIdentifier:
description: "Optional identifier for Statistics export."
type: string
default: ""
ImportSourceEnvironment:
description: "Source environment for import of statistics."
default: "None"
type: choice
options:
- "None"
- "delius-core-dev"
- "delius-core-test"
- "delius-core-training"
- "delius-core-stage"
- "delius-core-pre-prod"
VerboseOutput:
description: "Verbose Output level"
type: choice
default: ""
options:
- ""
- "-vv"
- "-vvv"
- "-vvvv"
SourceCodeVersion:
description: "Source version for the hmpps-delius-operation-automation. Enter a pull request, branch, commit ID, tag, or reference."
type: string
default: "main"
SourceConfigVersion:
description: "Source version for the modernisation-platform-configuration-management. Enter a pull request, branch, commit ID, tag, or reference."
type: string
default: "main"
env:
ansible_config: operations/playbooks/ansible.cfg
command: ansible-playbook operations/playbooks/oracle_statistics/oracle_statistics.yml
inventory: inventory/ansible
permissions:
contents: read
packages: read
id-token: write
jobs:
oracle_delius_statistics:
name: oracle-delius-statistics
environment: ${{ github.event.inputs.TargetEnvironment }}
runs-on: ubuntu-latest
container:
image: ghcr.io/ministryofjustice/hmpps-delius-operational-automation:0.1
timeout-minutes: 1440
continue-on-error: false
outputs:
TargetOemEnvironment: ${{ steps.definetargets.outputs.TargetOemEnvironment }}
TargetEnvironmentName: ${{ steps.definetargets.outputs.TargetEnvironmentName }}
RotateGroups: ${{ steps.definetargets.outputs.targets }}
steps:
- name: Prepare Target Name
id: preparetargetname
run: echo TargetHost="environment_name_$(echo ${{ github.event.inputs.TargetEnvironment }} | sed 's/delius-core-dev/delius_core_development_dev/;s/delius-core-test/delius_core_test_test/;s/delius-core-training/delius_core_test_training/;s/delius-core-stage/delius_core_preproduction_stage/;s/delius-core-pre-prod/delius_core_preproduction_pre_prod/;s/delius-core-prod/delius_core_production_prod/')_delius_primarydb" >> $GITHUB_OUTPUT
- name: Checkout Ansible Playbooks and Roles From hmpps-delius-operation-automation
uses: actions/checkout@v4
with:
sparse-checkout-cone-mode: false
sparse-checkout: |
playbooks/oracle_statistics
playbooks/ansible.cfg
path: operations
ref: ${{ github.event.inputs.SourceCodeVersion }}
fetch-depth: 0
- name: Checkout Ansible Inventory From modernisation-platform-configuration-management
uses: actions/checkout@v4
with:
repository: ministryofjustice/modernisation-platform-configuration-management
sparse-checkout-cone-mode: false
sparse-checkout: |
ansible/hosts
ansible/group_vars
path: inventory
ref: ${{ github.event.inputs.SourceConfigVersion }}
fetch-depth: 0
- name: Checkout Ansible Required Roles From modernisation-platform-configuration-management
uses: actions/checkout@v4
with:
repository: ministryofjustice/modernisation-platform-configuration-management
sparse-checkout-cone-mode: false
sparse-checkout: |
ansible/roles/secretsmanager-passwords
ansible/roles/get-modernisation-platform-facts
path: roles
ref: ${{ github.event.inputs.SourceConfigVersion }}
fetch-depth: 0
- name: Configure AWS Credentials
id: login-aws
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: "arn:aws:iam::${{ vars.AWS_ACCOUNT_ID }}:role/modernisation-platform-oidc-cicd"
role-session-name: "hmpps-delius-operational-automation-${{ github.run_number }}"
aws-region: "eu-west-2"
- name: Install GH CLI
uses: dev-hanz-ops/install-gh-cli-action@v0.1.0
with:
gh-cli-version: 2.32.0
- name: Start Ansible Gather Delius Statistics
shell: bash
run: |
export GH_TOKEN=${{ secrets.GITHUB_TOKEN }}
export ANSIBLE_CONFIG=$ansible_config
$command -i $inventory \
-e hosts=${{ steps.preparetargetname.outputs.TargetHost }} \
-e import_source_environment=${{ github.event.inputs.ImportSourceEnvironment }} \
-e gather_new_statistics=${{ github.event.inputs.GatherNewStatistics }} \
-e statistics_identifier=${{ github.event.inputs.StatisticsIdentifier }} \
-e export_to_s3=${{ github.event.inputs.ExportBackupStatisticsToS3 }} \
-e parallelism=${{ github.event.inputs.GatherParallelism }} ${{ github.event.inputs.VerboseOutput }}