From 146ab47179005d0e1303d9e950a917326360700a Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 5 Dec 2024 17:28:07 +0000 Subject: [PATCH 1/7] CLOUDP-285462: update release process to release v1 spec --- .github/scripts/branded_preview.sh | 2 + .github/workflows/release-spec-runner.yml | 4 ++ .github/workflows/release-spec.yml | 57 ++++++++++++++++++++++- 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/.github/scripts/branded_preview.sh b/.github/scripts/branded_preview.sh index 27ed1ab0e8..ab332b17e8 100755 --- a/.github/scripts/branded_preview.sh +++ b/.github/scripts/branded_preview.sh @@ -19,6 +19,8 @@ done < <(jq -r '.[]' versions.json) all_urls=( "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v2.json" "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v2.yaml" + "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v1-deprecated/v1.json" + "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v1-deprecated/v1.yaml" ) # Fetch and append file URLs from each version diff --git a/.github/workflows/release-spec-runner.yml b/.github/workflows/release-spec-runner.yml index 538bc8632f..e446cfe8e0 100644 --- a/.github/workflows/release-spec-runner.yml +++ b/.github/workflows/release-spec-runner.yml @@ -53,6 +53,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_DEV }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_DEV }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} + mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_DEV }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_DEV}} @@ -71,6 +72,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_QA }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_QA }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} + mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_QA }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_QA}} @@ -89,6 +91,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_STAGING }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_STAGING }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} + mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_STAGING }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_STAGING}} @@ -109,6 +112,7 @@ jobs: postman_api_key: ${{ secrets.POSTMAN_API_KEY }} workspace_id: ${{ secrets.WORKSPACE_ID }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} + mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_PROD }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_PROD}} diff --git a/.github/workflows/release-spec.yml b/.github/workflows/release-spec.yml index 46fd47d75a..3459d7c128 100644 --- a/.github/workflows/release-spec.yml +++ b/.github/workflows/release-spec.yml @@ -43,6 +43,8 @@ on: required: false jira_api_token: required: true + mms_deployed_sha_url: + required: true permissions: contents: write @@ -85,7 +87,7 @@ jobs: spectral_version: ${{ vars.SPECTRAL_VERSION }} release: - name: Release OpenAPI Spec + name: Release OpenAPI Spec for V2 APIs runs-on: ubuntu-latest needs: [run-required-validations] outputs: @@ -152,7 +154,58 @@ jobs: commit_author: "github-actions[bot] " branch: ${{env.target_branch}} file_pattern: "openapi/*" - + + release-v1-oas-apis: + name: Release OpenAPI Spec for V1 (DEPRECATED) APIs + runs-on: ubuntu-latest + steps: + - name: Download v1 Spec + env: + AWS_DEFAULT_REGION: ${{inputs.aws_default_region}} + AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.aws_secret_access_key }} + S3_BUCKET: ${{ inputs.aws_s3_bucket }} + MMS_DEPLOYED_SHA_URL: ${{secrets.mms_deployed_sha_url}} + run: | + sha=$(curl "${MMS_DEPLOYED_SHA_URL}") + echo "Downloading the OpenAPI Spec for v1 with sha ${sha}" + aws s3 cp "s3://${S3_BUCKET}/openapi/oas/mms-v1/${sha}.json" "v1.json" + - name: Generate YAML spec + run: | + sudo apt install yq + yq -P '.' v1.json > v1.yaml + - name: Upload artifact + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 + with: + name: openapi-v1-${{ inputs.env }} + path: | + v1.json + v1.yaml + - name: Checkout repository + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 + with: + ref: ${{ inputs.branch }} + token: ${{secrets.api_bot_pat}} + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: openapi-v1-${{ inputs.env }} + github-token: ${{ secrets.api_bot_pat }} + run-id: ${{ github.run_id }} + path: openapi/v1-deprecated + - name: Commit changes + id: commit + uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 + env: + target_env: ${{ inputs.env }} + target_branch: ${{ inputs.branch }} + run_id: ${{ github.run_id }} + with: + commit_message: "(${{env.target_env}}) Release OpenAPI Spec V1 :rocket:. See https://github.com/mongodb/openapi/actions/runs/${{env.run_id}}." + commit_author: "github-actions[bot] " + branch: ${{env.target_branch}} + file_pattern: "openapi/v1-deprecated/*" + release-postman: name: Release Postman needs: [release] From 8ef4280e223f6a6741c9fcf474d7929384b92147 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 5 Dec 2024 17:51:30 +0000 Subject: [PATCH 2/7] fixes --- .github/scripts/branded_preview.sh | 2 - .github/workflows/release-spec-runner.yml | 16 ++++ .github/workflows/release-spec-v1.yml | 85 ++++++++++++++++++++++ openapi/v1-deprecated/branded-preview.html | 9 +++ 4 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release-spec-v1.yml create mode 100644 openapi/v1-deprecated/branded-preview.html diff --git a/.github/scripts/branded_preview.sh b/.github/scripts/branded_preview.sh index ab332b17e8..27ed1ab0e8 100755 --- a/.github/scripts/branded_preview.sh +++ b/.github/scripts/branded_preview.sh @@ -19,8 +19,6 @@ done < <(jq -r '.[]' versions.json) all_urls=( "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v2.json" "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v2.yaml" - "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v1-deprecated/v1.json" - "https://raw.githubusercontent.com/mongodb/openapi/${branch_name:?}/openapi/v1-deprecated/v1.yaml" ) # Fetch and append file URLs from each version diff --git a/.github/workflows/release-spec-runner.yml b/.github/workflows/release-spec-runner.yml index e446cfe8e0..41bcbc25f4 100644 --- a/.github/workflows/release-spec-runner.yml +++ b/.github/workflows/release-spec-runner.yml @@ -121,3 +121,19 @@ jobs: spectral_version: ${{ vars.SPECTRAL_VERSION }} foascli_version: ${{ vars.FOASCLI_VERSION }} atlas_prod_base_url: ${{ vars.ATLAS_PROD_BASE_URL }} + + release-spec-v1-prod: + name: Release OpenAPI Spec V1 (Deprecated) for PROD + if: >- + github.event_name == 'schedule' || contains(inputs.env_to_release, 'prod') + uses: ./.github/workflows/release-spec-v1.yml + secrets: + api_bot_pat: ${{ secrets.API_BOT_PAT }} + aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_PROD }} + aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_PROD }} + mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_PROD }} + with: + aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} + aws_s3_bucket: ${{ vars.S3_BUCKET_PROD}} + env: prod + branch: main diff --git a/.github/workflows/release-spec-v1.yml b/.github/workflows/release-spec-v1.yml new file mode 100644 index 0000000000..5bc6c72126 --- /dev/null +++ b/.github/workflows/release-spec-v1.yml @@ -0,0 +1,85 @@ +name: 'Release OpenAPI Spec V1 for a given environment' +on: + workflow_call: + inputs: + aws_default_region: + description: 'AWS Default Region.' + required: true + type: string + aws_s3_bucket: + description: 'AWS S3 Bucket.' + required: true + type: string + env: + description: 'Environment to generate the OpenAPI Spec for.' + required: true + type: string + branch: + description: 'Branch to release the OpenAPI Spec to.' + required: true + type: string + secrets: # all secrets are passed explicitly in this workflow + api_bot_pat: + required: true + aws_access_key_id: + required: true + aws_secret_access_key: + required: true + mms_deployed_sha_url: + required: true + +permissions: + contents: write + issues: write + +jobs: + release-v1-oas-apis: + name: Release OpenAPI Spec for V1 (DEPRECATED) APIs + runs-on: ubuntu-latest + steps: + - name: Download v1 Spec + env: + AWS_DEFAULT_REGION: ${{inputs.aws_default_region}} + AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.aws_secret_access_key }} + S3_BUCKET: ${{ inputs.aws_s3_bucket }} + MMS_DEPLOYED_SHA_URL: ${{secrets.mms_deployed_sha_url}} + run: | + sha=$(curl "${MMS_DEPLOYED_SHA_URL}") + echo "Downloading the OpenAPI Spec for v1 with sha ${sha}" + aws s3 cp "s3://${S3_BUCKET}/openapi/oas/mms-v1/${sha}.json" "v1.json" + - name: Generate YAML spec + run: | + sudo apt install yq + yq -P '.' v1.json > v1.yaml + - name: Upload artifact + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 + with: + name: openapi-v1-${{ inputs.env }} + path: | + v1.json + v1.yaml + - name: Checkout repository + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 + with: + ref: ${{ inputs.branch }} + token: ${{secrets.api_bot_pat}} + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: openapi-v1-${{ inputs.env }} + github-token: ${{ secrets.api_bot_pat }} + run-id: ${{ github.run_id }} + path: openapi/v1-deprecated + - name: Commit changes + id: commit + uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 + env: + target_env: ${{ inputs.env }} + target_branch: ${{ inputs.branch }} + run_id: ${{ github.run_id }} + with: + commit_message: "(${{env.target_env}}) Release OpenAPI Spec V1 :rocket:. See https://github.com/mongodb/openapi/actions/runs/${{env.run_id}}." + commit_author: "github-actions[bot] " + branch: ${{env.target_branch}} + file_pattern: "openapi/v1-deprecated/*" \ No newline at end of file diff --git a/openapi/v1-deprecated/branded-preview.html b/openapi/v1-deprecated/branded-preview.html new file mode 100644 index 0000000000..2fddd71bb2 --- /dev/null +++ b/openapi/v1-deprecated/branded-preview.html @@ -0,0 +1,9 @@ + + + +

Preview docs for:

+ + + From fd9f6b5983bb9a160dbc3c66f9c1a9ee8b4ffa0c Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 5 Dec 2024 17:52:05 +0000 Subject: [PATCH 3/7] Update release-spec-v1.yml --- .github/workflows/release-spec-v1.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-spec-v1.yml b/.github/workflows/release-spec-v1.yml index 5bc6c72126..fd91dd9cd1 100644 --- a/.github/workflows/release-spec-v1.yml +++ b/.github/workflows/release-spec-v1.yml @@ -82,4 +82,4 @@ jobs: commit_message: "(${{env.target_env}}) Release OpenAPI Spec V1 :rocket:. See https://github.com/mongodb/openapi/actions/runs/${{env.run_id}}." commit_author: "github-actions[bot] " branch: ${{env.target_branch}} - file_pattern: "openapi/v1-deprecated/*" \ No newline at end of file + file_pattern: "openapi/v1-deprecated/*" From c374536c01bc81b2b8968440649379ac504dd57c Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 5 Dec 2024 17:52:40 +0000 Subject: [PATCH 4/7] Update branded-preview.html --- openapi/v1-deprecated/branded-preview.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi/v1-deprecated/branded-preview.html b/openapi/v1-deprecated/branded-preview.html index 2fddd71bb2..ba8d1aabf1 100644 --- a/openapi/v1-deprecated/branded-preview.html +++ b/openapi/v1-deprecated/branded-preview.html @@ -3,7 +3,7 @@

Preview docs for:

From 2475166cb3716c4982ae5043815f3a0af6970215 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 6 Dec 2024 11:06:03 +0000 Subject: [PATCH 5/7] fixes --- .github/workflows/release-spec-v1.yml | 2 +- .github/workflows/release-spec.yml | 51 --------------------------- 2 files changed, 1 insertion(+), 52 deletions(-) diff --git a/.github/workflows/release-spec-v1.yml b/.github/workflows/release-spec-v1.yml index fd91dd9cd1..bb60887d85 100644 --- a/.github/workflows/release-spec-v1.yml +++ b/.github/workflows/release-spec-v1.yml @@ -50,7 +50,7 @@ jobs: aws s3 cp "s3://${S3_BUCKET}/openapi/oas/mms-v1/${sha}.json" "v1.json" - name: Generate YAML spec run: | - sudo apt install yq + sudo snap install yq yq -P '.' v1.json > v1.yaml - name: Upload artifact uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 diff --git a/.github/workflows/release-spec.yml b/.github/workflows/release-spec.yml index 3459d7c128..6f846896f6 100644 --- a/.github/workflows/release-spec.yml +++ b/.github/workflows/release-spec.yml @@ -155,57 +155,6 @@ jobs: branch: ${{env.target_branch}} file_pattern: "openapi/*" - release-v1-oas-apis: - name: Release OpenAPI Spec for V1 (DEPRECATED) APIs - runs-on: ubuntu-latest - steps: - - name: Download v1 Spec - env: - AWS_DEFAULT_REGION: ${{inputs.aws_default_region}} - AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.aws_secret_access_key }} - S3_BUCKET: ${{ inputs.aws_s3_bucket }} - MMS_DEPLOYED_SHA_URL: ${{secrets.mms_deployed_sha_url}} - run: | - sha=$(curl "${MMS_DEPLOYED_SHA_URL}") - echo "Downloading the OpenAPI Spec for v1 with sha ${sha}" - aws s3 cp "s3://${S3_BUCKET}/openapi/oas/mms-v1/${sha}.json" "v1.json" - - name: Generate YAML spec - run: | - sudo apt install yq - yq -P '.' v1.json > v1.yaml - - name: Upload artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 - with: - name: openapi-v1-${{ inputs.env }} - path: | - v1.json - v1.yaml - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - ref: ${{ inputs.branch }} - token: ${{secrets.api_bot_pat}} - - name: Download artifact - uses: actions/download-artifact@v4 - with: - name: openapi-v1-${{ inputs.env }} - github-token: ${{ secrets.api_bot_pat }} - run-id: ${{ github.run_id }} - path: openapi/v1-deprecated - - name: Commit changes - id: commit - uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 - env: - target_env: ${{ inputs.env }} - target_branch: ${{ inputs.branch }} - run_id: ${{ github.run_id }} - with: - commit_message: "(${{env.target_env}}) Release OpenAPI Spec V1 :rocket:. See https://github.com/mongodb/openapi/actions/runs/${{env.run_id}}." - commit_author: "github-actions[bot] " - branch: ${{env.target_branch}} - file_pattern: "openapi/v1-deprecated/*" - release-postman: name: Release Postman needs: [release] From 10b13d6c520123ada0a5d77eeb1d559ef073aded Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 6 Dec 2024 11:09:54 +0000 Subject: [PATCH 6/7] Update release-spec-runner.yml --- .github/workflows/release-spec-runner.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/release-spec-runner.yml b/.github/workflows/release-spec-runner.yml index 41bcbc25f4..a74ed3d571 100644 --- a/.github/workflows/release-spec-runner.yml +++ b/.github/workflows/release-spec-runner.yml @@ -53,7 +53,6 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_DEV }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_DEV }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} - mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_DEV }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_DEV}} @@ -72,7 +71,6 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_QA }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_QA }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} - mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_QA }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_QA}} @@ -91,7 +89,6 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_STAGING }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_STAGING }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} - mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_STAGING }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_STAGING}} @@ -112,7 +109,6 @@ jobs: postman_api_key: ${{ secrets.POSTMAN_API_KEY }} workspace_id: ${{ secrets.WORKSPACE_ID }} jira_api_token: ${{ secrets.JIRA_API_TOKEN }} - mms_deployed_sha_url: ${{ secrets.MMS_DEPLOYED_SHA_URL_PROD }} with: aws_default_region: ${{ vars.AWS_DEFAULT_REGION}} aws_s3_bucket: ${{ vars.S3_BUCKET_PROD}} From 3b6783b5fbffcfaa47f9ca3f31879162a927bd6f Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 6 Dec 2024 11:10:55 +0000 Subject: [PATCH 7/7] Update release-spec.yml --- .github/workflows/release-spec.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release-spec.yml b/.github/workflows/release-spec.yml index 6f846896f6..f5d7fcb98d 100644 --- a/.github/workflows/release-spec.yml +++ b/.github/workflows/release-spec.yml @@ -43,8 +43,6 @@ on: required: false jira_api_token: required: true - mms_deployed_sha_url: - required: true permissions: contents: write