From 954d44b00e53363f536ac28876858b2cbe4af512 Mon Sep 17 00:00:00 2001 From: Omar Rida Date: Wed, 20 Mar 2024 04:51:10 +0300 Subject: [PATCH] add log statements --- .github/workflows/test-openapi.yml | 62 ++++++++++++++++++++++++++ fern/fern.config.json | 2 +- generators/openapi/src/writeOpenApi.ts | 32 +++++++++++++ 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test-openapi.yml diff --git a/.github/workflows/test-openapi.yml b/.github/workflows/test-openapi.yml new file mode 100644 index 00000000000..1e7637372bb --- /dev/null +++ b/.github/workflows/test-openapi.yml @@ -0,0 +1,62 @@ +on: + push: + branches: + - omarrida/openapi-test +jobs: + openapi: + runs-on: ubuntu-latest + needs: versions-changed + if: ${{ needs.versions-changed.outputs.openapi == 'true' || inputs.generator == 'openapi' }} + steps: + - name: Checkout repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: "yarn" + + - name: Install + run: yarn install + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: fernapi + password: ${{ secrets.FERN_API_DOCKERHUB_PASSWORD }} + + - name: Build CLI + working-directory: ./generators/openapi + run: yarn dist:cli + + - name: Print Version + if: ${{ inputs.generator != 'openapi' }} + run: | + projectVersion=$(cat generators/openapi/VERSION) + echo $projectVersion + echo "VERSION=$projectVersion" >> $GITHUB_ENV + + - name: Print Version Dev + if: ${{ inputs.generator == 'openapi' }} + run: | + projectVersion=$(cat generators/openapi/VERSION) + commitNumber=$(git log --oneline | wc -l ) + sha_short=$(git rev-parse --short HEAD) + echo $projectVersion-$commitNumber-$sha_short + echo "VERSION=$projectVersion-$commitNumber-$sha_short" >> $GITHUB_ENV + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: ./generators/openapi + file: ./generators/openapi/Dockerfile + platforms: linux/amd64,linux/arm64 + cache-from: type=gha + cache-to: type=gha,mode=min + push: true + tags: fernapi/omarrida-openapi:latest diff --git a/fern/fern.config.json b/fern/fern.config.json index 951c007d44e..fce1b42dbcb 100644 --- a/fern/fern.config.json +++ b/fern/fern.config.json @@ -1,4 +1,4 @@ { "organization": "fern", - "version": "0.19.10" + "version": "0.19.14-rc0" } \ No newline at end of file diff --git a/generators/openapi/src/writeOpenApi.ts b/generators/openapi/src/writeOpenApi.ts index d8207c9be42..8fc8f81c08e 100644 --- a/generators/openapi/src/writeOpenApi.ts +++ b/generators/openapi/src/writeOpenApi.ts @@ -16,40 +16,66 @@ export type Mode = "stoplight" | "openapi"; export async function writeOpenApi(mode: Mode, pathToConfig: string): Promise { try { + // eslint-disable-next-line no-console + console.log("beginning writeOpenApi"); const configStr = await readFile(pathToConfig); const config = JSON.parse(configStr.toString()) as GeneratorConfig; const customConfig = getCustomConfig(config); + // eslint-disable-next-line no-console + console.log("customConfig", customConfig); const generatorLoggingClient = new GeneratorLoggingWrapper(config); try { + // eslint-disable-next-line no-console + console.log("sending update"); await generatorLoggingClient.sendUpdate( GeneratorUpdate.init({ packagesToPublish: [] }) ); + // eslint-disable-next-line no-console + console.log("loading ir"); const ir = await loadIntermediateRepresentation(config.irFilepath); + // eslint-disable-next-line no-console + console.log("parsed ir", ir); const openApiDefinition = convertToOpenApi({ apiName: config.workspaceName, ir, mode }); + // eslint-disable-next-line no-console + console.log("openApiDefinition", openApiDefinition); const openApiDefinitionWithCustomOverrides = merge(customConfig.customOverrides, openApiDefinition); + // eslint-disable-next-line no-console + console.log("openApiDefinitionWithCustomOverrides", openApiDefinitionWithCustomOverrides); if (customConfig.format === "json") { + // eslint-disable-next-line no-console + console.log("writing json"); await writeFile( path.join(config.output.path, OPENAPI_JSON_FILENAME), JSON.stringify(openApiDefinitionWithCustomOverrides, undefined, 2) ); + // eslint-disable-next-line no-console + console.log("wrote json"); } else { + // eslint-disable-next-line no-console + console.log("writing yml"); await writeFile( path.join(config.output.path, OPENAPI_YML_FILENAME), yaml.dump(openApiDefinitionWithCustomOverrides) ); + // eslint-disable-next-line no-console + console.log("wrote yml"); } + // eslint-disable-next-line no-console + console.log("sending exit status update"); await generatorLoggingClient.sendUpdate(GeneratorUpdate.exitStatusUpdate(ExitStatusUpdate.successful({}))); + // eslint-disable-next-line no-console + console.log("sent exit status update"); } catch (e) { // eslint-disable-next-line no-console console.log("Encountered error", e); @@ -70,6 +96,12 @@ export async function writeOpenApi(mode: Mode, pathToConfig: string): Promise { const irString = (await readFile(pathToFile)).toString(); + // eslint-disable-next-line no-console + console.log("irString", irString); const irJson = JSON.parse(irString); + // eslint-disable-next-line no-console + console.log("irJson", irJson); + // eslint-disable-next-line no-console + console.log("parsing ir"); return IrSerialization.IntermediateRepresentation.parseOrThrow(irJson); }