Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
bfa8757
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
5b662db
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
83e4ee7
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
416cd2d
Rebuild postgresql_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
cf193a8
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
851dc51
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
197e244
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
0f0d9da
execute checks only if change detected on corresponding files
flovntp May 28, 2026
42ccb2e
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
a18d7b0
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 28, 2026
4eb389b
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
3c6d9bf
Update registry versions from Meta Version updater
platformsh-devrel May 29, 2026
5540764
refacto + optim GH WF
flovntp May 29, 2026
34d3c57
bump GH actions to latest
flovntp May 29, 2026
6c77658
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
21c609e
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
46c83ff
Update registry versions from Meta Version updater
platformsh-devrel May 29, 2026
3ac7f07
add copilot comment if Posgresql or Solr validation fail
flovntp May 29, 2026
98d8e12
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
6ad9d07
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
c962f84
Update registry versions from Meta Version updater
platformsh-devrel May 29, 2026
4d52242
add write permissions for copilot comment
flovntp May 29, 2026
8a668f5
use Copilot API to request a review
flovntp May 29, 2026
7a3167e
solve copilot user name
flovntp May 29, 2026
212c3fb
add debug on copilot review request
flovntp May 29, 2026
117454e
use upsun-bot to add a comment requesting copilot review
flovntp May 29, 2026
8a12d4e
change secret name
flovntp May 29, 2026
55fd068
Add missing Solr analysis-extras description suggestion
Copilot May 29, 2026
318e05b
request copilot to add a comment instead of a commiting suggestion
flovntp May 29, 2026
01369c6
remove description
flovntp May 29, 2026
29a1709
change copilot prompt
flovntp May 29, 2026
f895dd2
Rebuild php_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
6e6ff90
Rebuild solr_extensions.json cloud from Meta Version updater
platformsh-devrel May 29, 2026
d94cd52
Update registry versions from Meta Version updater
platformsh-devrel May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions .github/workflows/gen_openapi_spec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Git
run: |
Expand All @@ -37,28 +37,29 @@ jobs:
# URL-encode path to the project (replace `/` by `%2F`)
PROJECT_ENCODED=$(echo "$PROJECT_PATH" | sed 's/\//%2F/g')

JSON_FILE="web%2Fopenapispec-upsun.json"
YAML_FILE="web%2Fopenapispec-upsun.yaml"

# Download openapispec-upsun.(json|yaml) into resources/openapi using the Git API
curl --header "PRIVATE-TOKEN: $GIT_TOKEN" \
curl --fail --header "PRIVATE-TOKEN: $GIT_TOKEN" \
--output resources/openapi/openapispec-upsun.json \
"${GIT_URL_BASE}/${PROJECT_ENCODED}/repository/files/$(python3 -c "import urllib.parse; print(urllib.parse.quote('web/openapispec-upsun.json',safe=''))")/raw?ref=${REF}"
curl --header "PRIVATE-TOKEN: $GIT_TOKEN" \
"${GIT_URL_BASE}/${PROJECT_ENCODED}/repository/files/${JSON_FILE}/raw?ref=${REF}"
curl --fail --header "PRIVATE-TOKEN: $GIT_TOKEN" \
--output resources/openapi/openapispec-upsun.yaml \
"${GIT_URL_BASE}/${PROJECT_ENCODED}/repository/files/$(python3 -c "import urllib.parse; print(urllib.parse.quote('web/openapispec-upsun.yaml',safe=''))")/raw?ref=${REF}"
"${GIT_URL_BASE}/${PROJECT_ENCODED}/repository/files/${YAML_FILE}/raw?ref=${REF}"

- name: Patch OpenAPI specs (json) for SDK generation
run: composer run spec:patch

- name: Create Pull Request if changes
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.OPENAPI_WORKFLOW_TOKEN }}
commit-message: "Generate OpenAPI spec for SDKs"
body: |
This PR updates the OpenAPI spec from upstream and applies formatting changes to generate the SDK version.

author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com>
draft: false
delete-branch: false
branch: update-openapi-spec
title: "[API-BOT] Get and Patch OpenAPI spec for SDKs"
base: master
Expand Down
218 changes: 112 additions & 106 deletions .github/workflows/validate-registry.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Validate image registry
name: Validate static files

on:
pull_request:
Expand Down Expand Up @@ -31,17 +31,62 @@ on:
- 'backend/package-lock.json'

jobs:
detect-changes:
name: Detect changed files
runs-on: ubuntu-latest
outputs:
backend: ${{ steps.filter.outputs.backend }}
registry: ${{ steps.filter.outputs.registry }}
regions: ${{ steps.filter.outputs.regions }}
composable: ${{ steps.filter.outputs.composable }}
upsun: ${{ steps.filter.outputs.upsun }}
ext_php: ${{ steps.filter.outputs.ext_php }}
ext_postgresql: ${{ steps.filter.outputs.ext_postgresql }}
ext_solr: ${{ steps.filter.outputs.ext_solr }}
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Filter changed files
id: filter
uses: dorny/paths-filter@v4
with:
filters: |
backend:
- 'backend/src/scripts/**'
- 'backend/src/schemas/**'
- 'backend/package.json'
- 'backend/package-lock.json'
registry:
- 'resources/image/registry.json'
- 'resources/image/registry.schema.json'
regions:
- 'resources/host/regions.json'
composable:
- 'resources/image/composable.json'
upsun:
- 'resources/validation/upsun.json'
ext_php:
- 'resources/extension/php_extensions.json'
ext_postgresql:
- 'resources/extension/postgresql_extensions.json'
ext_solr:
- 'resources/extension/solr_extensions.json'

build:
name: Build backend
runs-on: ubuntu-latest
needs: detect-changes
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: backend/package-lock.json

- name: Install dependencies
run: npm ci
Expand All @@ -52,143 +97,104 @@ jobs:
working-directory: ./backend

- name: Upload build artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: backend-dist
path: backend/dist
retention-days: 1

validate-registry:
name: Validate image registry
validate-extensions:
name: Validate Schemas
runs-on: ubuntu-latest
needs: build
needs: [build, detect-changes]
permissions:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: backend/package-lock.json

- name: Install dependencies
run: npm ci
working-directory: ./backend

- name: Download build artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: backend-dist
path: backend/dist

- name: Validate schema
run: npm run validate:registry
- name: Validate Solr modules
id: validate-solr
if: ${{ needs.detect-changes.outputs.ext_solr == 'true' || needs.detect-changes.outputs.backend == 'true' }}
continue-on-error: true
run: npm run validate:extensions:solr
working-directory: ./backend

validate-regions:
name: Validate host regions
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
- name: Comment PR on Solr validation failure
if: ${{ steps.validate-solr.outcome == 'failure' && github.event_name == 'pull_request' }}
uses: actions/github-script@v7
with:
node-version: '24'

- name: Install dependencies
run: npm ci
github-token: ${{ secrets.WORKFLOW_TOKEN }}
script: |
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: '@copilot if there is an empty description in one of the Solr extensions (solr_extensions.json), find it and suggest in a comment a short description for the extension, and ask to report this description in Meta Version Updater tool'
});

- name: Validate PostgreSQL extensions
id: validate-postgresql
if: ${{ needs.detect-changes.outputs.ext_postgresql == 'true' || needs.detect-changes.outputs.backend == 'true' }}
continue-on-error: true
run: npm run validate:extensions:postgresql
working-directory: ./backend

- name: Download build artifacts
uses: actions/download-artifact@v4
- name: Comment PR on PostgreSQL validation failure
if: ${{ steps.validate-postgresql.outcome == 'failure' && github.event_name == 'pull_request' }}
uses: actions/github-script@v7
with:
name: backend-dist
path: backend/dist

- name: Validate schema
run: npm run validate:regions
github-token: ${{ secrets.WORKFLOW_TOKEN }}
script: |
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: '@copilot if there is an empty description in one of the Postgresql extensions, find it and suggest in a comment a short description for the extension, and ask to report this description in Meta Version Updater tool'
});

- name: Fail if Solr or PostgreSQL validation failed
if: ${{ steps.validate-solr.outcome == 'failure' || steps.validate-postgresql.outcome == 'failure' }}
run: exit 1

- name: Validate PHP extensions
if: ${{ needs.detect-changes.outputs.ext_php == 'true' || needs.detect-changes.outputs.backend == 'true' }}
run: npm run validate:extensions:php
working-directory: ./backend

validate-composable:
name: Validate composable image
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Install dependencies
run: npm ci
working-directory: ./backend

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: backend-dist
path: backend/dist

- name: Validate schema
run: npm run validate:composable
working-directory: ./backend

validate-extensions:
name: Validate extensions (PHP/PostgreSQL/Solr)
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Install dependencies
run: npm ci
- name: Validate registry
if: ${{ needs.detect-changes.outputs.registry == 'true' || needs.detect-changes.outputs.backend == 'true' }}
run: npm run validate:registry
working-directory: ./backend

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: backend-dist
path: backend/dist

- name: Validate schema
run: npm run validate:extensions

- name: Validate Regions
if: ${{ needs.detect-changes.outputs.regions == 'true' || needs.detect-changes.outputs.backend == 'true' }}
run: npm run validate:regions
working-directory: ./backend

validate-upsun:
name: Validate Upsun configuration schema
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Install dependencies
run: npm ci
- name: Validate Composable
if: ${{ needs.detect-changes.outputs.composable == 'true' || needs.detect-changes.outputs.backend == 'true' }}
run: npm run validate:composable
working-directory: ./backend

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: backend-dist
path: backend/dist

- name: Validate schema
- name: Validate Upsun config.yaml schema
if: ${{ needs.detect-changes.outputs.upsun == 'true' || needs.detect-changes.outputs.backend == 'true' }}
run: npm run validate:upsun
working-directory: ./backend
2 changes: 1 addition & 1 deletion resources/extension/postgresql_extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -3054,7 +3054,7 @@
}
},
"timetravel": {
"description": "",
"description": "Trigger-based functions to record and query the history of row changes over time.",
"versions": {
"10": {
"status": "available"
Expand Down
2 changes: 1 addition & 1 deletion resources/extension/solr_extensions.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"cloud": {
"analysis-extras": {
"description": "Additional text analysis components (tokenizers, filters, phonetics).",
"description": "Extra analyzers and token filters for advanced text analysis use cases.",
"versions": {
"9.9": {
"status": "available"
Expand Down
Loading