diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..339bf98f4 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,8 @@ +Code of Conduct Guidelines +========================== + +Please review the Hyperledger [Code of +Conduct](https://wiki.hyperledger.org/community/hyperledger-project-code-of-conduct) +before participating. It is important that we keep things civil. + +Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. \ No newline at end of file diff --git a/docs/contributing.md b/CONTRIBUTING.md similarity index 100% rename from docs/contributing.md rename to CONTRIBUTING.md diff --git a/ci/azure-pipelines.yml b/ci/azure-pipelines.yml new file mode 100644 index 000000000..c570497fc --- /dev/null +++ b/ci/azure-pipelines.yml @@ -0,0 +1,48 @@ +# Starter pipeline +# Start with a minimal pipeline that you can customize to build and deploy your code. +# Add steps that build, run tests, deploy, and more: +# https://aka.ms/yaml + +trigger: +- master + +pool: + vmImage: 'ubuntu-18.04' + +variables: + - group: credentials + +stages: +- stage: PreCheck + displayName: Check license and documents + jobs: + - job: CheckLicenseAndDocs + steps: + - template: ci/check-license-and-docs.yml + +- stage: ProcessComponents + displayName: ProcessComponents + jobs: + - template: ci/process-components.yml + parameters: + param: + - name: dashandapi + pretest: "dashandapi_pre.yml" + posttest: "dashandapi_post.yml" + images: + - imagename: "hyperledger/cello-api-engine" + dockerfile: "build_image/docker/common/api-engine/Dockerfile.in" + - imagename: "hyperledger/cello-nginx" + dockerfile: "build_image/docker/common/nginx/Dockerfile.in" + - imagename: "hyperledger/cello-dashboard" + dockerfile: "build_image/docker/common/dashboard/Dockerfile.in" + - name: ansibleagent + images: + - imagename: "hyperledger/cello-ansible-agent" + dockerfile: "build_image/docker/agent/ansible/Dockerfile.in" +# - name: fabricoperator +# images: +# - imagename: "hyperledger/cello-k8s-operator-agent" +# dockerfile: "src/agent/fabric-operator/agent/Dockerfile" +# - imagename: "hyperledger/cello-k8s-operator-controller" +# dockerfile: "src/agent/fabric-operator/Dockerfile" diff --git a/repolint.json b/repolint.json new file mode 100644 index 000000000..8a9f95f47 --- /dev/null +++ b/repolint.json @@ -0,0 +1,87 @@ +{ + "axioms": { + "linguist":"language", + "licensee":"license", + "packagers":"packager" + }, + "rules": { + "all": { + "license-file-exists:file-existence": ["error", {"files": ["LICENSE*", "COPYING*"], "nocase": true}], + "readme-file-exists:file-existence": ["error", {"files": ["README*"], "nocase": true}], + + "contributing-file-exists:file-existence": ["error", {"files": ["CONTRIB*", ".github/CONTRIB*"]}], + "code-of-conduct-file-exists:file-existence": ["error", {"files": [ + "CODEOFCONDUCT*", "CODE-OF-CONDUCT*", "CODE_OF_CONDUCT*", + ".github/CODEOFCONDUCT*", ".github/CODE-OF-CONDUCT*", ".github/CODE_OF_CONDUCT*" + ]}], + "changelog-file-exists:file-existence": ["error", {"files": ["CHANGELOG*"], "nocase": true}], + "security-file-exists:file-existence": ["error", {"files": ["SECURITY.md"]}], + "support-file-exists:file-existence": ["warning", {"files": ["{docs/,.github/,}SUPPORT*"], "nocase": true}], + "readme-references-license:file-contents": ["error", {"files": ["README*"], "content": "license", "flags": "i"}], + "binaries-not-present:file-type-exclusion": ["error", {"type": ["**/*.exe", "**/*.dll", "!node_modules/**"]}], + "test-directory-exists:directory-existence": ["error", {"directories": ["**/test*", "**/specs"], "nocase": true}], + "integrates-with-ci:file-existence": [ + "error", + { + "files": [ + ".gitlab-ci.yml", + ".travis.yml", + "appveyor.yml", + ".appveyor.yml", + "circle.yml", + ".circleci/config.yml", + "Jenkinsfile", + ".drone.yml", + ".github/workflows/*", + "ci/azure-pipelines.yml" + ] + } + ], + "code-of-conduct-file-contains-email:file-contents": [ + "warning", + { + "files": [ + "CODEOFCONDUCT*", "CODE-OF-CONDUCT*", "CODE_OF_CONDUCT*", + ".github/CODEOFCONDUCT*", ".github/CODE-OF-CONDUCT*", ".github/CODE_OF_CONDUCT*" + ], + "content": ".+@.+\\..+", + "flags": "i", + "human-readable-content": "email address" + } + ], + "source-license-headers-exist:file-starts-with": ["warning", {"files": ["**/*.js", "!node_modules/**"], "lineCount": 5, "patterns": ["Copyright", "License"], "flags": "i"}], + "github-issue-template-exists:file-existence": ["warning", {"files": ["ISSUE_TEMPLATE*", ".github/ISSUE_TEMPLATE*"]}], + "github-pull-request-template-exists:file-existence": ["warning", {"files": ["PULL_REQUEST_TEMPLATE*", ".github/PULL_REQUEST_TEMPLATE*"]}] + }, + "language=javascript": { + "package-metadata-exists:file-existence": ["error", {"files": ["package.json"]}] + }, + "language=ruby": { + "package-metadata-exists:file-existence": ["error", {"files": ["Gemfile"]}] + }, + "language=java": { + "package-metadata-exists:file-existence": ["error", {"files": ["pom.xml", "build.xml", "build.gradle"]}] + }, + "license=*": { + "license-detectable-by-licensee": ["error"] + }, + "license=Apache-2.0": { + "notice-file-exists:apache-notice": ["error"] + }, + "language=python": { + "package-metadata-exists:file-existence": ["error", {"files": ["setup.py", "requirements.txt"]}] + }, + "language=objective-c": { + "package-metadata-exists:file-existence": ["error", {"files": ["Cartfile", "Podfile", "*.podspec"]}] + }, + "language=swift": { + "package-metadata-exists:file-existence": ["error", {"files": ["Package.swift"]}] + }, + "language=erlang": { + "package-metadata-exists:file-existence": ["error", {"files": ["rebar.config"]}] + }, + "language=elixir": { + "package-metadata-exists:file-existence": ["error", {"files": ["mix.exs"]}] + } + } + } \ No newline at end of file