1- name : Generate Swagger
1+ name : Generate OpenAPI Specs
22
33on :
44 push :
1717env :
1818 OTP_VERSION : ' 27.3.4.6'
1919 ELIXIR_VERSION : ' 1.19.4'
20- RELEASE_VERSION : 9.3.5
20+ RELEASE_VERSION : 10.0.1
2121
2222jobs :
2323 matrix-builder :
@@ -124,9 +124,18 @@ jobs:
124124
125125 - name : mix openapi.spec.yaml
126126 run : |
127- mix openapi.spec.yaml --spec BlockScoutWeb.ApiSpec openapi.${{ matrix.chain-type }}.yaml --start-app=false
127+ mix openapi.spec.yaml --spec BlockScoutWeb.Specs.Public openapi.${{ matrix.chain-type }}.yaml --start-app=false
128128 env :
129129 CHAIN_TYPE : ${{ matrix.chain-type != 'default' && matrix.chain-type || '' }}
130+ MUD_INDEXER_ENABLED : false
131+
132+ - name : Generate MUD-enabled spec for Optimism
133+ if : matrix.chain-type == 'optimism'
134+ run : |
135+ mix openapi.spec.yaml --spec BlockScoutWeb.Specs.Public openapi.mud.yaml --start-app=false
136+ env :
137+ CHAIN_TYPE : optimism
138+ MUD_INDEXER_ENABLED : true
130139
131140 - name : Upload OpenAPI spec
132141 uses : actions/upload-artifact@v4
@@ -135,6 +144,14 @@ jobs:
135144 path : openapi.${{ matrix.chain-type }}.yaml
136145 retention-days : 1
137146
147+ - name : Upload MUD-enabled spec
148+ if : matrix.chain-type == 'optimism'
149+ uses : actions/upload-artifact@v4
150+ with :
151+ name : openapi-spec-mud
152+ path : openapi.mud.yaml
153+ retention-days : 1
154+
138155 push-specs :
139156 needs :
140157 - generate-swagger
@@ -169,14 +186,18 @@ jobs:
169186
170187 for SPEC_FILE in temp-specs/*; do
171188 if [ -f "$SPEC_FILE" ]; then
172- # Extract chain type from filename
173- CHAIN_TYPE=$(echo $SPEC_FILE | cut -d'.' -f2)
174-
175- # Create directory
176- mkdir -p "api-specs/blockscout/${VERSION}/${CHAIN_TYPE}"
189+ FILENAME=$(basename "$SPEC_FILE")
177190
178- # Copy spec files
179- cp "$SPEC_FILE" "api-specs/blockscout/${VERSION}/${CHAIN_TYPE}/swagger.yaml"
191+ # Handle MUD spec specially
192+ if [ "$FILENAME" = "openapi.mud.yaml" ]; then
193+ mkdir -p "api-specs/blockscout/${VERSION}/mud"
194+ cp "$SPEC_FILE" "api-specs/blockscout/${VERSION}/mud/swagger.yaml"
195+ else
196+ # Extract chain type from filename (openapi.CHAINTYPE.yaml)
197+ CHAIN_TYPE=$(echo "$FILENAME" | sed 's/openapi\.\(.*\)\.yaml/\1/')
198+ mkdir -p "api-specs/blockscout/${VERSION}/${CHAIN_TYPE}"
199+ cp "$SPEC_FILE" "api-specs/blockscout/${VERSION}/${CHAIN_TYPE}/swagger.yaml"
200+ fi
180201 fi
181202 done
182203
0 commit comments