Skip to content

Commit 0013c69

Browse files
committed
Merge branch 'feature/PI-276-proxygen_spec' into release/2024-10-16
2 parents 63993ee + 83cf0a2 commit 0013c69

File tree

4 files changed

+81
-3
lines changed

4 files changed

+81
-3
lines changed

.github/workflows/_deploy.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,22 @@ jobs:
145145
infrastructure/swagger/dist/apigee/swagger.yaml
146146
if: ${{ always() }}
147147

148+
swagger--publish:
149+
needs: [get-branch-from-workflow-file, apigee--deploy]
150+
runs-on: [self-hosted, ci]
151+
steps:
152+
- uses: actions/checkout@v4
153+
with:
154+
ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }}
155+
# change below to (env.ACCOUNT == 'int') || (env.ACCOUNT == 'prod') when ready for prod
156+
- if: (${{ env.SCOPE == 'per_workspace'}}) && (${{ env.ACCOUNT == 'int' }})
157+
uses: ./.github/actions/make/
158+
with:
159+
command: swagger--publish
160+
requires-aws: true
161+
restore-from-cache: "true"
162+
cache-suffix: ${{ env.CACHE_NAME }}
163+
148164
test--smoke:
149165
needs: [get-branch-from-workflow-file, apigee--deploy]
150166
runs-on: [self-hosted, ci]
@@ -162,7 +178,7 @@ jobs:
162178

163179
set-success:
164180
name: Set Success
165-
needs: [test--smoke]
181+
needs: [test--smoke, apigee--deploy]
166182
runs-on: [self-hosted, ci]
167183
steps:
168184
- name: Set success env var

scripts/infrastructure/apigee.mk

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,3 @@ $(PROXYGEN_TIMESTAMP): aws--login $(SWAGGER_APIGEE) $(WORKSPACE_OUTPUT_JSON)
5858
AWS_SECRET_ACCESS_KEY=$(AWS_SECRET_ACCESS_KEY) \
5959
AWS_SESSION_TOKEN=$(AWS_SESSION_TOKEN) \
6060
bash $(PATH_TO_INFRASTRUCTURE)/apigee/proxygen.sh generate_proxy
61-
62-
touch $(PROXYGEN_TIMESTAMP)

scripts/infrastructure/apigee/proxygen.sh

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,5 +166,51 @@ function delete_proxy(){
166166
--no-confirm
167167
}
168168

169+
170+
function publish_swagger(){
171+
if [[ -z ${SWAGGER_PUBLIC} ]]; then
172+
echo "SWAGGER_PUBLIC not set"
173+
exit 1
174+
fi
175+
176+
177+
_workspace_name=$(get_workspace_name)
178+
_aws_environment=$(get_aws_environment)
179+
_apigee_environment=$(get_apigee_environment ${_workspace_name} ${_aws_environment})
180+
_apigee_stage=$(get_apigee_stage ${_workspace_name})
181+
182+
if [[ ${_aws_environment} == "prod" ]]; then
183+
_flags=""
184+
#elif [[ ${_aws_environment} == "int" ]]; then
185+
else
186+
_flags="--uat"
187+
# else
188+
# echo "ERROR: only environments to deploy to are 'prod' and 'int'"
189+
# exit 1;
190+
fi
191+
192+
echo "
193+
Publishing swagger
194+
-------------------- ----------------------------------------
195+
workspace_name ${_workspace_name}
196+
aws_environment ${_aws_environment}
197+
apigee_environment ${_apigee_environment}
198+
apigee_stage ${_apigee_stage}
199+
flags ${_flags}
200+
"
201+
202+
# Download the pem file if it does not exist
203+
if [ ! -f "${APIGEE_CONFIG_PATH}/${_apigee_stage}/.proxygen/private_key.pem" ]; then
204+
poetry run python ${PATH_TO_HERE}/download_pem.py ${_apigee_stage} ${APIGEE_DEPLOYMENT_ROLE}
205+
fi
206+
207+
DOT_PROXYGEN=${APIGEE_CONFIG_PATH}/${_apigee_stage} \
208+
poetry run \
209+
python ${PATH_TO_HERE}/proxygen.py spec publish \
210+
${SWAGGER_PUBLIC} \
211+
${_flags} \
212+
--no-confirm
213+
}
214+
169215
# Expose functions publicly
170216
$@

scripts/infrastructure/swagger.mk

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ SWAGGER_AWS = $(SWAGGER_DIST)/aws/swagger.yaml
1616
SWAGGER_PUBLIC = $(SWAGGER_DIST)/public/swagger.yaml
1717
SWAGGER_APIGEE = $(SWAGGER_DIST)/apigee/swagger.yaml
1818
_CLEANED_SWAGGER_FILE = $(SWAGGER_DIST)/build/_02_clean.yaml
19+
PROXYGEN_TIMESTAMP = $(TIMESTAMP_DIR)/.proxygen.stamp
20+
SWAGGER_PUBLISH_TIMESTAMP = $(TIMESTAMP_DIR)/.swagger.publish.stamp
1921

2022
TOOL_VERSIONS_COPY = $(TIMESTAMP_DIR)/tool-versions.copy
2123
SWAGGER_DEPENDENCIES = $(FHIR_BASE_TIMESTAMP) $(shell find infrastructure/swagger -type f -name "*.yaml" -not -path "*/dist/*.yaml" ) $(shell find scripts/infrastructure/swagger -type f -name "*.sh") $(TOOL_VERSIONS_COPY)
@@ -29,6 +31,8 @@ swagger--clean: ## Removes swagger builds.
2931
[[ -f $(PATH_TO_SWAGGER_GENERATOR_JAR) ]] && rm $(PATH_TO_SWAGGER_GENERATOR_JAR) || :
3032
swagger--generate-fhir-base: $(FHIR_BASE_TIMESTAMP)
3133
swagger--download-generator: $(PATH_TO_SWAGGER_GENERATOR_JAR) ## Downloads the latest swagger fhir generator
34+
swagger--publish: $(SWAGGER_PUBLISH_TIMESTAMP) ## Publish swagger docs via proxygen to API Catalogue
35+
3236

3337

3438
$(PATH_TO_SWAGGER_GENERATOR_JAR): $(INIT_TIMESTAMP)
@@ -61,3 +65,17 @@ $(SWAGGER_PUBLIC): $(SWAGGER_DEPENDENCIES) $(_CLEANED_SWAGGER_FILE)
6165
$(SWAGGER_APIGEE): $(SWAGGER_DEPENDENCIES) $(_CLEANED_SWAGGER_FILE) $(WORKSPACE_OUTPUT_JSON)
6266
@env bash $(PATH_TO_INFRASTRUCTURE)/swagger/merge.sh generate_apigee_swagger
6367
npx --yes @redocly/cli lint $(SWAGGER_APIGEE) --skip-rule security-defined || ([[ -f $(FHIR_BASE_TIMESTAMP) ]] && rm $(FHIR_BASE_TIMESTAMP) || :; exit 1)
68+
69+
$(SWAGGER_PUBLISH_TIMESTAMP): aws--login $(SWAGGER_PUBLIC) $(WORKSPACE_OUTPUT_JSON)
70+
[[ -f $(SWAGGER_PUBLISH_TIMESTAMP) ]] && rm $(SWAGGER_PUBLISH_TIMESTAMP) || :
71+
72+
WORKSPACE_OUTPUT_JSON=$(WORKSPACE_OUTPUT_JSON) \
73+
ENVIRONMENT_MAPPING_YAML=$(ENVIRONMENT_MAPPING_YAML) \
74+
STAGE_MAPPING_YAML=$(STAGE_MAPPING_YAML) \
75+
APIGEE_CONFIG_PATH=$(APIGEE_CONFIG_PATH) \
76+
SWAGGER_APIGEE=$(SWAGGER_APIGEE) \
77+
SWAGGER_PUBLIC=$(SWAGGER_PUBLIC) \
78+
AWS_ACCESS_KEY_ID=$(AWS_ACCESS_KEY_ID) \
79+
AWS_SECRET_ACCESS_KEY=$(AWS_SECRET_ACCESS_KEY) \
80+
AWS_SESSION_TOKEN=$(AWS_SESSION_TOKEN) \
81+
bash $(PATH_TO_INFRASTRUCTURE)/apigee/proxygen.sh publish_swagger

0 commit comments

Comments
 (0)