commit
a76042ab4a
42 changed files with 434 additions and 45 deletions
4
.github/codeql/codeql-config.yml
vendored
4
.github/codeql/codeql-config.yml
vendored
|
|
@ -1,4 +1,6 @@
|
||||||
me: "CodeQL config"
|
name: "CodeQL config"
|
||||||
queries:
|
queries:
|
||||||
- name: Run custom queries
|
- name: Run custom queries
|
||||||
uses: ./queries
|
uses: ./queries
|
||||||
|
paths-ignore:
|
||||||
|
- tests
|
||||||
3
.github/workflows/codeql.yml
vendored
3
.github/workflows/codeql.yml
vendored
|
|
@ -13,5 +13,6 @@ jobs:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- uses: ./init
|
- uses: ./init
|
||||||
with:
|
with:
|
||||||
config-file: ./.github/codeql/codeql-config.yml
|
languages: javascript
|
||||||
|
config-file: ./.github/codeql/codeql-config.yml
|
||||||
- uses: ./analyze
|
- uses: ./analyze
|
||||||
|
|
|
||||||
129
.github/workflows/integration-testing.yml
vendored
129
.github/workflows/integration-testing.yml
vendored
|
|
@ -1,22 +1,117 @@
|
||||||
name: "Integration Testing"
|
name: "Integration Testing"
|
||||||
|
|
||||||
on: [push]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
dispatch-events:
|
multi-language-repo_test-autodetect-languages:
|
||||||
if: github.event.repository.full_name == 'github/codeql-action'
|
strategy:
|
||||||
runs-on: ubuntu-latest
|
matrix:
|
||||||
steps:
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
- name: Send repository dispatch events
|
runs-on: ${{ matrix.os }}
|
||||||
run: |
|
|
||||||
curl -X POST \
|
|
||||||
-H "Authorization: Bearer ${{ secrets.CODEQL_TESTING_TOKEN }}" \
|
|
||||||
-H "Accept: application/vnd.github.everest-preview+json" \
|
|
||||||
https://api.github.com/repos/Anthophila/amazon-cognito-js-copy/dispatches \
|
|
||||||
-d '{"event_type":"codeql-integration","client_payload": {"sha": "${{ github.sha }}"}}'
|
|
||||||
|
|
||||||
curl -X POST \
|
steps:
|
||||||
-H "Authorization: Bearer ${{ secrets.CODEQL_TESTING_TOKEN }}" \
|
- uses: actions/checkout@v2
|
||||||
-H "Accept: application/vnd.github.everest-preview+json" \
|
- name: Move codeql-action
|
||||||
https://api.github.com/repos/Anthophila/electron-test-action/dispatches \
|
shell: bash
|
||||||
-d '{"event_type":"codeql-integration","client_payload": {"sha": "${{ github.sha }}"}}'
|
run: |
|
||||||
|
mkdir ../action
|
||||||
|
shopt -s dotglob
|
||||||
|
mv * ../action/
|
||||||
|
mv ../action/tests/multi-language-repo/* .
|
||||||
|
- uses: ./../action/init
|
||||||
|
- name: Build code
|
||||||
|
shell: bash
|
||||||
|
run: ./build.sh
|
||||||
|
- uses: ./../action/analyze
|
||||||
|
env:
|
||||||
|
TEST_MODE: true
|
||||||
|
|
||||||
|
multi-language-repo_test-custom-queries:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Move codeql-action
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir ../action
|
||||||
|
shopt -s dotglob
|
||||||
|
mv * ../action/
|
||||||
|
mv ../action/tests/multi-language-repo/* .
|
||||||
|
- uses: ./../action/init
|
||||||
|
with:
|
||||||
|
languages: cpp,csharp,java,javascript,python
|
||||||
|
config-file: ./.github/codeql/custom-queries.yml
|
||||||
|
- name: Build code
|
||||||
|
shell: bash
|
||||||
|
run: ./build.sh
|
||||||
|
- uses: ./../action/analyze
|
||||||
|
env:
|
||||||
|
TEST_MODE: true
|
||||||
|
|
||||||
|
# Currently is not possible to analyze Go in conjunction with other languages in macos
|
||||||
|
multi-language-repo_test-go-custom-queries:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
if: ${{ matrix.os == 'macos-latest' }}
|
||||||
|
with:
|
||||||
|
go-version: '^1.13.1'
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Move codeql-action
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir ../action
|
||||||
|
shopt -s dotglob
|
||||||
|
mv * ../action/
|
||||||
|
mv ../action/tests/multi-language-repo/* .
|
||||||
|
- uses: ./../action/init
|
||||||
|
with:
|
||||||
|
languages: go
|
||||||
|
config-file: ./.github/codeql/custom-queries.yml
|
||||||
|
- name: Build code
|
||||||
|
shell: bash
|
||||||
|
run: ./build.sh
|
||||||
|
- uses: ./../action/analyze
|
||||||
|
env:
|
||||||
|
TEST_MODE: true
|
||||||
|
|
||||||
|
|
||||||
|
multi-language-repo_rubocop:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Move codeql-action
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir ../action
|
||||||
|
shopt -s dotglob
|
||||||
|
mv * ../action/
|
||||||
|
mv ../action/tests/multi-language-repo/* .
|
||||||
|
- name: Set up Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
- name: Install Code Scanning integration
|
||||||
|
run: bundle add code-scanning-rubocop --version 0.2.0 --skip-install
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bundle install
|
||||||
|
- name: Rubocop run
|
||||||
|
run: |
|
||||||
|
bash -c "
|
||||||
|
bundle exec rubocop --require code_scanning --format CodeScanning::SarifFormatter -o rubocop.sarif
|
||||||
|
[[ $? -ne 2 ]]
|
||||||
|
"
|
||||||
|
- uses: ./../action/upload-sarif
|
||||||
|
with:
|
||||||
|
sarif_file: rubocop.sarif
|
||||||
|
env:
|
||||||
|
TEST_MODE: true
|
||||||
|
|
@ -1,8 +1,16 @@
|
||||||
name: "Check generated JavaScript"
|
name: "Lint, Build & Test"
|
||||||
|
|
||||||
on: [pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
tslint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: tslint
|
||||||
|
run: npm run-script lint
|
||||||
|
|
||||||
check-js:
|
check-js:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
|
@ -25,3 +33,11 @@ jobs:
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "Success: JavaScript files are up to date"
|
echo "Success: JavaScript files are up to date"
|
||||||
|
|
||||||
|
npm-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: npm run-script test
|
||||||
|
run: npm run-script test
|
||||||
12
.github/workflows/npm-test.yml
vendored
12
.github/workflows/npm-test.yml
vendored
|
|
@ -1,12 +0,0 @@
|
||||||
name: "npm run-script test"
|
|
||||||
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
npm-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: npm run-script test
|
|
||||||
run: npm run-script test
|
|
||||||
12
.github/workflows/ts-lint.yml
vendored
12
.github/workflows/ts-lint.yml
vendored
|
|
@ -1,12 +0,0 @@
|
||||||
name: "TSLint"
|
|
||||||
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
tslint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: tslint
|
|
||||||
run: npm run-script lint
|
|
||||||
5
lib/upload-lib.js
generated
5
lib/upload-lib.js
generated
|
|
@ -58,6 +58,11 @@ exports.combineSarifFiles = combineSarifFiles;
|
||||||
// If the request fails then this will retry a small number of times.
|
// If the request fails then this will retry a small number of times.
|
||||||
async function uploadPayload(payload) {
|
async function uploadPayload(payload) {
|
||||||
core.info('Uploading results');
|
core.info('Uploading results');
|
||||||
|
// If in test mode we don't want to upload the results
|
||||||
|
const testMode = process.env['TEST_MODE'] === 'true' || false;
|
||||||
|
if (testMode) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
const githubToken = core.getInput('token');
|
const githubToken = core.getInput('token');
|
||||||
const ph = new auth.BearerCredentialHandler(githubToken);
|
const ph = new auth.BearerCredentialHandler(githubToken);
|
||||||
const client = new http.HttpClient('Code Scanning : Upload SARIF', [ph]);
|
const client = new http.HttpClient('Code Scanning : Upload SARIF', [ph]);
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,12 @@ export function combineSarifFiles(sarifFiles: string[]): string {
|
||||||
async function uploadPayload(payload): Promise<boolean> {
|
async function uploadPayload(payload): Promise<boolean> {
|
||||||
core.info('Uploading results');
|
core.info('Uploading results');
|
||||||
|
|
||||||
|
// If in test mode we don't want to upload the results
|
||||||
|
const testMode = process.env['TEST_MODE'] === 'true' || false;
|
||||||
|
if (testMode) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
const githubToken = core.getInput('token');
|
const githubToken = core.getInput('token');
|
||||||
const ph: auth.BearerCredentialHandler = new auth.BearerCredentialHandler(githubToken);
|
const ph: auth.BearerCredentialHandler = new auth.BearerCredentialHandler(githubToken);
|
||||||
const client = new http.HttpClient('Code Scanning : Upload SARIF', [ph]);
|
const client = new http.HttpClient('Code Scanning : Upload SARIF', [ph]);
|
||||||
|
|
|
||||||
29
tests/multi-language-repo/.github/codeql/custom-queries.yml
vendored
Normal file
29
tests/multi-language-repo/.github/codeql/custom-queries.yml
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
name: Use custom queries
|
||||||
|
|
||||||
|
disable-default-queries: true
|
||||||
|
|
||||||
|
queries:
|
||||||
|
# Query suites
|
||||||
|
- name: Select a query suite
|
||||||
|
uses: ./codeql-qlpacks/complex-python-qlpack/rootAndBar.qls
|
||||||
|
# QL pack subset
|
||||||
|
- name: Select a ql file
|
||||||
|
uses: ./codeql-qlpacks/complex-javascript-qlpack/show_ifs.ql
|
||||||
|
- name: Select a subfolder
|
||||||
|
uses: ./codeql-qlpacks/complex-javascript-qlpack/foo
|
||||||
|
- name: Select a folder with two subfolders
|
||||||
|
uses: ./codeql-qlpacks/complex-javascript-qlpack/foo2
|
||||||
|
# Inrepo QL pack
|
||||||
|
- name: Select an inrepo ql pack
|
||||||
|
uses: ./codeql-qlpacks/csharp-qlpack
|
||||||
|
- name: Java queries
|
||||||
|
uses: ./codeql-qlpacks/java-qlpack
|
||||||
|
# External QL packs
|
||||||
|
- name: Go queries
|
||||||
|
uses: Anthophila/go-querypack@master
|
||||||
|
- name: Cpp queries
|
||||||
|
uses: Anthophila/cpp-querypack@second-branch
|
||||||
|
- name: Javascript queries
|
||||||
|
uses: Anthophila/javascript-querypack/show_ifs2.ql@master
|
||||||
|
- name: Python queries
|
||||||
|
uses: Anthophila/python-querypack/show_ifs2.ql@second-branch
|
||||||
2
tests/multi-language-repo/Gemfile
Normal file
2
tests/multi-language-repo/Gemfile
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
source "https://rubygems.org" do
|
||||||
|
end
|
||||||
8
tests/multi-language-repo/Main.java
Normal file
8
tests/multi-language-repo/Main.java
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
class Main {
|
||||||
|
public static void main(String args[]) {
|
||||||
|
if (true) {
|
||||||
|
System.out.println("Hello, World!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
8
tests/multi-language-repo/build.sh
Executable file
8
tests/multi-language-repo/build.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
gcc -o main main.c
|
||||||
|
|
||||||
|
dotnet build
|
||||||
|
|
||||||
|
javac Main.java
|
||||||
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Foo Show Ifs
|
||||||
|
* @description Foo Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-javascript-querypack/foo-show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javascript
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "foo if"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Bar Show Ifs
|
||||||
|
* @description Bar Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-javascript-querypack/bar-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javascript
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "bar if"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Barfoobar Show Ifs
|
||||||
|
* @description Barfoobar Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-javascript-querypack/barfoobar-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javascript
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "barfoobar if"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Foo2 Show Ifs
|
||||||
|
* @description Foo2 Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-javascript-querypack/foo2-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javascript
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "foo2 if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: complex-javascript-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-javascript
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Root Show Ifs
|
||||||
|
* @description Root Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-javascript-querypack/root-show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javascript
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "root if"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Foo/Bar Show Ifs
|
||||||
|
* @description Foo/Bar Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-python-querypack/foo/bar/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import python
|
||||||
|
|
||||||
|
from If i
|
||||||
|
select i, "foo/bar if"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Foo Show Ifs
|
||||||
|
* @description Foo Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-python-querypack/foo/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import python
|
||||||
|
|
||||||
|
from If i
|
||||||
|
select i, "foo if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-python-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-python
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
- query: show_ifs.ql
|
||||||
|
- query: foo/bar/show_ifs.ql
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Ifs
|
||||||
|
* @description Show Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id complex-python-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import python
|
||||||
|
|
||||||
|
from If i
|
||||||
|
select i, "hello if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-cpp-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-cpp
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Cpp Ifs
|
||||||
|
* @description Show Cpp Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id inrepo-cpp-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import cpp
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "hello if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-csharp-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-csharp
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Csharp Ifs
|
||||||
|
* @description Show Csharp Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id inrepo-csharp-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import csharp
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "hello if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-go-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-go
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Go Ifs
|
||||||
|
* @description Show Go Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id inrepo-go-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import go
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "hello if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-java-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-java
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Java Ifs
|
||||||
|
* @description Show Java Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id inrepo-java-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "hello if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-javascript-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-javascript
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Javascript Ifs
|
||||||
|
* @description Show Javascript Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id inrepo-javascript-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javascript
|
||||||
|
|
||||||
|
from IfStmt i
|
||||||
|
select i, "hello if"
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
name: inrepo-python-querypack
|
||||||
|
version: 0.0.1
|
||||||
|
libraryPathDependencies: codeql-python
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* @name Show Python Ifs
|
||||||
|
* @description Show Python Ifs
|
||||||
|
* @kind problem
|
||||||
|
* @id inrepo-python-querypack/show-ifs
|
||||||
|
*/
|
||||||
|
|
||||||
|
import python
|
||||||
|
|
||||||
|
from If i
|
||||||
|
select i, "hello if"
|
||||||
9
tests/multi-language-repo/csharp.csproj
Normal file
9
tests/multi-language-repo/csharp.csproj
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
<RootNamespace>multi_language_test</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
8
tests/multi-language-repo/main.c
Normal file
8
tests/multi-language-repo/main.c
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#include "stdio.h"
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
if (1) {
|
||||||
|
printf("Hello, World!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
12
tests/multi-language-repo/main.cs
Normal file
12
tests/multi-language-repo/main.cs
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace HelloWorldApp {
|
||||||
|
class Geeks {
|
||||||
|
static void Main(string[] args) {
|
||||||
|
if (true) {
|
||||||
|
Console.WriteLine("Hello World!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
9
tests/multi-language-repo/main.go
Normal file
9
tests/multi-language-repo/main.go
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if true {
|
||||||
|
fmt.Println("hello world")
|
||||||
|
}
|
||||||
|
}
|
||||||
3
tests/multi-language-repo/main.js
Normal file
3
tests/multi-language-repo/main.js
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
if (true) {
|
||||||
|
console.log("Hello, World!");
|
||||||
|
}
|
||||||
9
tests/multi-language-repo/main.py
Executable file
9
tests/multi-language-repo/main.py
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if True:
|
||||||
|
print("Hello, World!")
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
||||||
11
tests/multi-language-repo/main.rb
Executable file
11
tests/multi-language-repo/main.rb
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/ruby
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
def main
|
||||||
|
v = ARGV[0]
|
||||||
|
|
||||||
|
puts 'with arg?' unless v.nil?
|
||||||
|
puts 'hello there'
|
||||||
|
end
|
||||||
|
|
||||||
|
main
|
||||||
Loading…
Add table
Add a link
Reference in a new issue