Skip to content

Merge pull request #12398 from swagger-api/CodeQl-Workflow-FIX #632

Merge pull request #12398 from swagger-api/CodeQl-Workflow-FIX

Merge pull request #12398 from swagger-api/CodeQl-Workflow-FIX #632

name: Test Generation V2
on:
# execute on demand
workflow_dispatch:
branches: ["master"]
# execute on PRs
pull_request:
branches: [ "master" ]
# execute on merge
push:
branches: [ "master" ]
jobs:
# builds codegen cli and uploads its artifact
build-codegen:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11 ]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: build codegen
run: |
mkdir codegen-cli
echo "BUILDING ${{ env.VERSION }}"
mvn -version
mvn -q -B package -DskipTests -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=3
cp modules/swagger-codegen-cli/target/swagger-codegen-cli.jar codegen-cli
- name: upload codegen cli
uses: actions/upload-artifact@v2
with:
name: codegen-cli
path: codegen-cli
env:
VERSION: ${{ github.event.inputs.version }}
######################
##### RUBY #####
######################
generate-ruby:
needs: build-codegen
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11 ]
outputs:
generate_outcome: ${{ steps.outcome.outputs.generate_outcome }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Download codegen cli
uses: actions/download-artifact@v2
with:
name: codegen-cli
- name: generate
id: generate
continue-on-error: true
uses: ./.github/actions/generate
with:
language: ruby
job-name: ${{ env.JOB_NAME }}
spec-url: https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
options: -DgemName=petstore,moduleName=Petstore,gemVersion=1.0.0
- id: outcome
run: |
echo "generate_outcome=${{ steps.generate.outcome }}" >> $GITHUB_OUTPUT
echo ${{ steps.generate.outcome }} > generate_outcome_${{ env.JOB_NAME }}
- name: upload generate outcome
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_outcome
path: generate_outcome_${{ env.JOB_NAME }}
- name: upload generate logs
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_logs
path: ${{ steps.generate.outputs.logs }}
- name: upload generated code
if: contains(steps.generate.outcome, 'success')
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generated
path: ${{ steps.generate.outputs.path }}
env:
JOB_NAME: "ruby-v2-sample"
build-ruby:
needs: generate-ruby
if: contains(needs.generate-ruby.outputs.generate_outcome, 'success')
runs-on: ubuntu-latest
strategy:
###############################################
##### DYNAMIC: Dependent on build environment
###############################################
matrix:
ruby: ['2.3']
java: [ 11 ]
###############################################
##### END DYNAMIC: Dependent on build environment
###############################################
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: ${{ env.JOB_NAME }}generated
path: generated/${{ env.JOB_NAME }}
- name: Download logs
uses: actions/download-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_logs
###############################################
##### DYNAMIC: Dependent on build environment
###############################################
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: ruby test files
run: |
cp samples/client/petstore/ruby/pom.xml generated/${{ env.JOB_NAME }}
cp samples/client/petstore/ruby/petstore_profiling.rb generated/${{ env.JOB_NAME }}
cp samples/client/petstore/ruby/press_anykey_to_continue.sh generated/${{ env.JOB_NAME }}
cp samples/client/petstore/ruby/Rakefile generated/${{ env.JOB_NAME }}
###############################################
##### END DYNAMIC: Dependent on build environment
###############################################
- name: build
id: build
uses: ./.github/actions/build
with:
path: generated/${{ env.JOB_NAME }}
job-name: ${{ env.JOB_NAME }}
build-commands: mvn verify
- id: outcome
run: |
echo "build_outcome=${{ steps.build.outcome }}" >> $GITHUB_OUTPUT
echo ${{ steps.build.outcome }} > ${{ env.JOB_NAME }}build_outcome
- name: upload build outcome
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}build_outcome
path: ${{ env.JOB_NAME }}build_outcome
- name: upload logs
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}logs
path: ${{ steps.build.outputs.logs }}
env:
JOB_NAME: "ruby-v2-sample"
######################
##### JAVASCRIPT #####
######################
generate-javascript:
needs: build-codegen
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11 ]
outputs:
generate_outcome: ${{ steps.outcome.outputs.generate_outcome }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Download codegen cli
uses: actions/download-artifact@v2
with:
name: codegen-cli
- name: generate
id: generate
continue-on-error: true
uses: ./.github/actions/generate
with:
language: javascript
job-name: ${{ env.JOB_NAME }}
spec-url: https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
options: -DappName=PetstoreClient --additional-properties useES6=false
- id: outcome
run: |
echo "generate_outcome=${{ steps.generate.outcome }}" >> $GITHUB_OUTPUT
echo ${{ steps.generate.outcome }} > generate_outcome_${{ env.JOB_NAME }}
- name: upload generate outcome
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_outcome
path: generate_outcome_${{ env.JOB_NAME }}
- name: upload generate logs
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_logs
path: ${{ steps.generate.outputs.logs }}
- name: upload generated code
if: contains(steps.generate.outcome, 'success')
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generated
path: ${{ steps.generate.outputs.path }}
env:
JOB_NAME: "javascript-v2-sample"
build-javascript:
needs: generate-javascript
if: contains(needs.generate-javascript.outputs.generate_outcome, 'success')
runs-on: ubuntu-latest
strategy:
###############################################
##### DYNAMIC: Dependent on build environment
###############################################
matrix:
node-version: [12.x]
java: [ 11 ]
###############################################
##### END DYNAMIC: Dependent on build environment
###############################################
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: ${{ env.JOB_NAME }}generated
path: generated/${{ env.JOB_NAME }}
- name: Download logs
uses: actions/download-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_logs
###############################################
##### DYNAMIC: Dependent on build environment
###############################################
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Javascript test files
run: |
cp samples/client/petstore/javascript/pom.xml generated/${{ env.JOB_NAME }}
###############################################
##### END DYNAMIC: Dependent on build environment
###############################################
- name: build
id: build
uses: ./.github/actions/build
with:
path: generated/${{ env.JOB_NAME }}
job-name: ${{ env.JOB_NAME }}
build-commands: mvn verify
- id: outcome
run: |
echo "build_outcome=${{ steps.build.outcome }}" >> $GITHUB_OUTPUT
echo ${{ steps.build.outcome }} > ${{ env.JOB_NAME }}build_outcome
- name: upload build outcome
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}build_outcome
path: ${{ env.JOB_NAME }}build_outcome
- name: upload logs
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}logs
path: ${{ steps.build.outputs.logs }}
env:
JOB_NAME: "javascript-v2-sample"
######################
##### PHP #####
######################
generate-php:
needs: build-codegen
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11 ]
outputs:
generate_outcome: ${{ steps.outcome.outputs.generate_outcome }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Download codegen cli
uses: actions/download-artifact@v2
with:
name: codegen-cli
- name: generate
id: generate
continue-on-error: true
uses: ./.github/actions/generate
with:
language: php
job-name: ${{ env.JOB_NAME }}
spec-url: https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
options: " --additional-properties composerVendorName=swagger,composerProjectName=swagger_codegen"
- id: outcome
run: |
echo "generate_outcome=${{ steps.generate.outcome }}" >> $GITHUB_OUTPUT
echo ${{ steps.generate.outcome }} > generate_outcome_${{ env.JOB_NAME }}
- name: upload generate outcome
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_outcome
path: generate_outcome_${{ env.JOB_NAME }}
- name: upload generate logs
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_logs
path: ${{ steps.generate.outputs.logs }}
- name: upload generated code
if: contains(steps.generate.outcome, 'success')
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}generated
path: ${{ steps.generate.outputs.path }}
env:
JOB_NAME: "php-v2-sample"
build-php:
needs: generate-php
if: contains(needs.generate-php.outputs.generate_outcome, 'success')
runs-on: ubuntu-latest
strategy:
###############################################
##### DYNAMIC: Dependent on build environment
###############################################
matrix:
node-version: [12.x]
java: [ 11 ]
###############################################
##### END DYNAMIC: Dependent on build environment
###############################################
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: ${{ env.JOB_NAME }}generated
path: generated/${{ env.JOB_NAME }}
- name: Download logs
uses: actions/download-artifact@v2
with:
name: ${{ env.JOB_NAME }}generate_logs
###############################################
##### DYNAMIC: Dependent on build environment
###############################################
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: PHP test files
run: |
cp -r samples/client/petstore/php/SwaggerClient-php/tests generated/${{ env.JOB_NAME }}
cp samples/client/petstore/php/SwaggerClient-php/autoload.php generated/${{ env.JOB_NAME }}
cp samples/client/petstore/php/SwaggerClient-php/pom.xml generated/${{ env.JOB_NAME }}
cp samples/client/petstore/php/SwaggerClient-php/phpcs-generated-code.xml generated/${{ env.JOB_NAME }}
- name: Setup PHP with composer v2
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
tools: composer:v2
###############################################
##### END DYNAMIC: Dependent on build environment
###############################################
- name: build
id: build
uses: ./.github/actions/build
with:
path: generated/${{ env.JOB_NAME }}/SwaggerClient-php
job-name: ${{ env.JOB_NAME }}
build-commands: "composer install__&&__./vendor/bin/phpunit test"
- id: outcome
run: |
echo "build_outcome=${{ steps.build.outcome }}" >> $GITHUB_OUTPUT
echo ${{ steps.build.outcome }} > ${{ env.JOB_NAME }}build_outcome
- name: upload build outcome
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}build_outcome
path: ${{ env.JOB_NAME }}build_outcome
- name: upload logs
uses: actions/upload-artifact@v2
with:
name: ${{ env.JOB_NAME }}logs
path: ${{ steps.build.outputs.logs }}
env:
JOB_NAME: "php-v2-sample"