diff --git a/.github/workflows/grapl-build.yml b/.github/workflows/grapl-build.yml index cd8f9a282e..b2614d420c 100644 --- a/.github/workflows/grapl-build.yml +++ b/.github/workflows/grapl-build.yml @@ -8,7 +8,7 @@ on: - master jobs: - grapl-cargo-audit: + cargo-audit: runs-on: ubuntu-latest steps: @@ -19,7 +19,7 @@ jobs: docker build -f .github/etc/cargo-audit/Dockerfile -t grapl/grapl-cargo-audit:latest src/rust docker run -t grapl/grapl-cargo-audit:latest cargo audit - grapl-rust-build: + rust-unit-tests: runs-on: ubuntu-latest steps: @@ -30,12 +30,15 @@ jobs: wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux chmod +x dobi-linux - - name: Build Grapl Rust services + - name: Build Rust services run: | GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount rust - docker system prune -f - grapl-python-build: + - name: Rust unit tests + run: | + GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount rust-unit-tests + + python-unit-tests: runs-on: ubuntu-latest steps: @@ -46,12 +49,15 @@ jobs: wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux chmod +x dobi-linux - - name: Build Grapl Python services + - name: Build Python services run: | GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount python - docker system prune -f - grapl-js-build: + - name: Python unit tests + run: | + GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount python-unit-tests + + js-unit-tests: runs-on: ubuntu-latest steps: @@ -62,32 +68,16 @@ jobs: wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux chmod +x dobi-linux - - name: Build Grapl JS services + - name: Build JS services run: | GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount js - docker system prune -f - - grapl-rust-integration-tests: - runs-on: ubuntu-latest - needs: [grapl-rust-build, grapl-python-build, grapl-js-build] - - steps: - - uses: actions/checkout@v2 - - - name: Install dobi - run: | - wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux - chmod +x dobi-linux - - name: Run Grapl integration tests + - name: JS unit tests run: | - GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount rust-integration - GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount clean-rust-build - docker system prune -f + GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount js-unit-tests - grapl-python-integration-tests: + integration-tests: runs-on: ubuntu-latest - needs: [grapl-rust-build, grapl-python-build, grapl-js-build] steps: - uses: actions/checkout@v2 @@ -97,8 +87,10 @@ jobs: wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux chmod +x dobi-linux - - name: Run Grapl integration tests + - name: Build Grapl + run: | + GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount build + + - name: Run integration tests run: | - GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount python-integration - GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount clean-python-build - docker system prune -f + GRAPL_RELEASE_TARGET=debug TAG=latest ./dobi-linux --no-bind-mount integration-tests diff --git a/.github/workflows/grapl-lint.yml b/.github/workflows/grapl-lint.yml index f5952b406f..d1ae97d1f7 100644 --- a/.github/workflows/grapl-lint.yml +++ b/.github/workflows/grapl-lint.yml @@ -17,6 +17,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: stable + components: rustfmt - name: Check rust formatting run: | diff --git a/.github/workflows/grapl-release.yml b/.github/workflows/grapl-release.yml index 17809d070b..3ba2bf8abc 100644 --- a/.github/workflows/grapl-release.yml +++ b/.github/workflows/grapl-release.yml @@ -5,74 +5,62 @@ on: types: [released, prereleased] jobs: - release: + integration-tests: runs-on: ubuntu-latest - strategy: - matrix: - python-version: [3.7] - steps: - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} + - name: Install dobi + run: | + wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux + chmod +x dobi-linux - - name: Determine release channel + - name: Run integration tests run: | - BRANCH=${{ github.event.release.target_commitish }} - if [[ "$BRANCH" == "master" ]]; then - CHANNEL="latest" - else - CHANNEL="beta" - fi - echo "::set-env name=CHANNEL::$CHANNEL" + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount integration-tests - - name: Install pypi-simple + - name: Clean build run: | - python3 -mvenv venv && . venv/bin/activate - pip install pypi-simple - deactivate + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount clean-build + docker system prune -af - - name: Check whether grapl_graph_descriptions version has been bumped + rust-tests: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + + - name: Install dobi run: | - . venv/bin/activate - if [[ "$CHANNEL" == "latest" ]]; then - python etc/build_scripts/check_pypi_version.py \ - grapl_graph_descriptions \ - $(cat src/rust/graph-descriptions/VERSION) - else - python etc/build_scripts/check_pypi_version.py \ - grapl_graph_descriptions \ - $(cat src/rust/graph-descriptions/VERSION) \ - true - fi - deactivate + wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux + chmod +x dobi-linux - - name: Check whether grapl_analyzerlib version has been bumped + - name: Run unit tests run: | - . venv/bin/activate - if [[ "$CHANNEL" == "latest" ]]; then - python etc/build_scripts/check_pypi_version.py \ - grapl_analyzerlib \ - $(cat src/python/grapl_analyzerlib/VERSION) - else - python etc/build_scripts/check_pypi_version.py \ - grapl_analyzerlib \ - $(cat src/python/grapl_analyzerlib/VERSION) \ - true - fi - deactivate + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount rust-unit-tests + + - name: Clean build + run: | + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount clean-rust-build + docker system prune -af + + release-rust-services: + runs-on: ubuntu-latest + needs: [rust-tests, integration-tests] + + steps: + + - uses: actions/checkout@v2 - name: Install dobi run: | wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux chmod +x dobi-linux - - name: Build Grapl + - name: Build Rust services env: VERSION: ${{ github.event.release.tag_name }} run: | @@ -85,36 +73,9 @@ jobs: GRAPL_RELEASE_TARGET=release TAG="$VERSION-$CHANNEL" ./dobi-linux --no-bind-mount js GRAPL_RELEASE_TARGET=release TAG="$VERSION-$CHANNEL" ./dobi-linux --no-bind-mount clean-js-build docker system prune -f - GRAPL_RELEASE_TARGET=release TAG="$VERSION-CHANNEL" ./dobi-linux --no-bind-mount integration - GRAPL_RELEASE_TARGET=release TAG="$VERSION-CHANNEL" ./dobi-linux --no-bind-mount clean-build - docker system prune -f - - - name: Log in to Docker registry - run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username grapl --password-stdin - - - name: Publish Grapl images to DockerHub - env: - VERSION: ${{ github.event.release.tag_name }} - run: | - docker push grapl/grapl-sysmon-subgraph-generator:$VERSION-$CHANNEL - docker push grapl/grapl-generic-subgraph-generator:$VERSION-$CHANNEL - docker push grapl/grapl-node-identifier:$VERSION-$CHANNEL - docker push grapl/grapl-node-identifier-retry-handler:$VERSION-$CHANNEL - docker push grapl/grapl-graph-merger:$VERSION-$CHANNEL - docker push grapl/grapl-analyzer-dispatcher:$VERSION-$CHANNEL - docker push grapl/grapl-analyzer-executor:$VERSION-$CHANNEL - docker push grapl/grapl-engagement-creator:$VERSION-$CHANNEL - docker push grapl/grapl-notebook:$VERSION-$CHANNEL - docker push grapl/grapl-engagement-edge:$VERSION-$CHANNEL - docker push grapl/grapl-model-plugin-deployer:$VERSION-$CHANNEL - docker push grapl/grapl-engagement-view:$VERSION-$CHANNEL - docker push grapl/grapl-graphql-endpoint:$VERSION-$CHANNEL - docker push grapl/grapl-graph-provision:$VERSION-$CHANNEL - docker push grapl/grapl-dynamodb-provision:$VERSION-$CHANNEL - docker push grapl/grapl-dgraph-ttl:$VERSION-$CHANNEL - - name: Extract Grapl artifacts from build - id: extract-artifacts + - name: Extract artifacts from Rust build + id: extract-rust-artifacts env: VERSION: ${{ github.event.release.tag_name }} run: | @@ -148,25 +109,22 @@ jobs: rm ./bootstrap echo "::set-output name=analyzer-dispatcher::analyzer-dispatcher-$VERSION-$CHANNEL.zip" - cp dist/analyzer-executor/lambda.zip analyzer-executor-$VERSION-$CHANNEL.zip - echo "::set-output name=analyzer-executor::analyzer-executor-$VERSION-$CHANNEL.zip" - - cp dist/engagement-creator/lambda.zip engagement-creator-$VERSION-$CHANNEL.zip - echo "::set-output name=engagement-creator::engagement-creator-$VERSION-$CHANNEL.zip" - - cp dist/engagement-edge/lambda.zip engagement-edge-$VERSION-$CHANNEL.zip - echo "::set-output name=engagement-edge::engagement-edge-$VERSION-$CHANNEL.zip" - - cp dist/model-plugin-deployer/lambda.zip model-plugin-deployer-$VERSION-$CHANNEL.zip - echo "::set-output name=model-plugin-deployer::model-plugin-deployer-$VERSION-$CHANNEL.zip" - - cp dist/graphql-endpoint/lambda.zip graphql-endpoint-$VERSION-$CHANNEL.zip - echo "::set-output name=graphql-endpoint::graphql-endpoint-$VERSION-$CHANNEL.zip" + - name: Log in to Docker registry + run: | + echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username grapl --password-stdin - cp dist/dgraph-ttl/lambda.zip dgraph-ttl-$VERSION-$CHANNEL.zip - echo "::set-output name=dgraph-ttl::dgraph-ttl-$VERSION-$CHANNEL.zip" + - name: Publish Rust images to DockerHub + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + docker push grapl/grapl-sysmon-subgraph-generator:$VERSION-$CHANNEL + docker push grapl/grapl-generic-subgraph-generator:$VERSION-$CHANNEL + docker push grapl/grapl-node-identifier:$VERSION-$CHANNEL + docker push grapl/grapl-node-identifier-retry-handler:$VERSION-$CHANNEL + docker push grapl/grapl-graph-merger:$VERSION-$CHANNEL + docker push grapl/grapl-analyzer-dispatcher:$VERSION-$CHANNEL - - name: Clean up Grapl build dist + - name: Clean up dist run: | rm -rf dist @@ -230,6 +188,138 @@ jobs: asset_name: ${{ steps.extract-artifacts.outputs.analyzer-dispatcher }} asset_content_type: application/zip + python-tests: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + + - name: Install dobi + run: | + wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux + chmod +x dobi-linux + + - name: Run unit tests + run: | + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount python-unit-tests + + - name: Clean build + run: | + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount clean-python-build + docker system prune -f + + release-python-services: + runs-on: ubuntu-latest + needs: [python-tests, integration-tests] + + strategy: + matrix: + python-version: [3.7] + + steps: + + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Determine release channel + run: | + BRANCH=${{ github.event.release.target_commitish }} + if [[ "$BRANCH" == "master" ]]; then + CHANNEL="latest" + else + CHANNEL="beta" + fi + echo "::set-env name=CHANNEL::$CHANNEL" + + - name: Install pypi-simple + run: | + python3 -mvenv venv && . venv/bin/activate + pip install pypi-simple + deactivate + + - name: Check whether grapl_graph_descriptions version has been bumped + run: | + . venv/bin/activate + if [[ "$CHANNEL" == "latest" ]]; then + python etc/build_scripts/check_pypi_version.py \ + grapl_graph_descriptions \ + $(cat src/rust/graph-descriptions/VERSION) + else + python etc/build_scripts/check_pypi_version.py \ + grapl_graph_descriptions \ + $(cat src/rust/graph-descriptions/VERSION) \ + true + fi + deactivate + + - name: Check whether grapl_analyzerlib version has been bumped + run: | + . venv/bin/activate + if [[ "$CHANNEL" == "latest" ]]; then + python etc/build_scripts/check_pypi_version.py \ + grapl_analyzerlib \ + $(cat src/python/grapl_analyzerlib/VERSION) + else + python etc/build_scripts/check_pypi_version.py \ + grapl_analyzerlib \ + $(cat src/python/grapl_analyzerlib/VERSION) \ + true + fi + deactivate + + - name: Install dobi + run: | + wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux + chmod +x dobi-linux + + - name: Build Python services + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + GRAPL_RELEASE_TARGET=release TAG="$VERSION-$CHANNEL" ./dobi-linux --no-bind-mount python + + - name: Log in to Docker registry + run: | + echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username grapl --password-stdin + + - name: Publish Python images to DockerHub + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + docker push grapl/grapl-analyzer-executor:$VERSION-$CHANNEL + docker push grapl/grapl-engagement-creator:$VERSION-$CHANNEL + docker push grapl/grapl-notebook:$VERSION-$CHANNEL + docker push grapl/grapl-engagement-edge:$VERSION-$CHANNEL + docker push grapl/grapl-model-plugin-deployer:$VERSION-$CHANNEL + docker push grapl/grapl-graph-provision:$VERSION-$CHANNEL + docker push grapl/grapl-dynamodb-provision:$VERSION-$CHANNEL + docker push grapl/grapl-dgraph-ttl:$VERSION-$CHANNEL + + - name: Extract Python artifacts from build + id: extract-python-artifacts + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + cp dist/analyzer-executor/lambda.zip analyzer-executor-$VERSION-$CHANNEL.zip + echo "::set-output name=analyzer-executor::analyzer-executor-$VERSION-$CHANNEL.zip" + + cp dist/engagement-creator/lambda.zip engagement-creator-$VERSION-$CHANNEL.zip + echo "::set-output name=engagement-creator::engagement-creator-$VERSION-$CHANNEL.zip" + + cp dist/engagement-edge/lambda.zip engagement-edge-$VERSION-$CHANNEL.zip + echo "::set-output name=engagement-edge::engagement-edge-$VERSION-$CHANNEL.zip" + + cp dist/model-plugin-deployer/lambda.zip model-plugin-deployer-$VERSION-$CHANNEL.zip + echo "::set-output name=model-plugin-deployer::model-plugin-deployer-$VERSION-$CHANNEL.zip" + + cp dist/dgraph-ttl/lambda.zip dgraph-ttl-$VERSION-$CHANNEL.zip + echo "::set-output name=dgraph-ttl::dgraph-ttl-$VERSION-$CHANNEL.zip" + - name: Upload analyzer-executor to Github uses: actions/upload-release-asset@v1 env: @@ -270,16 +360,6 @@ jobs: asset_name: ${{ steps.extract-artifacts.outputs.model-plugin-deployer }} asset_content_type: application/zip - - name: Upload graphql-endpoint to Github - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./${{ steps.extract-artifacts.outputs.graphql-endpoint }} - asset_name: ${{ steps.extract-artifacts.outputs.graphql-endpoint }} - asset_content_type: application/zip - - name: Upload dgraph-ttl to Github uses: actions/upload-release-asset@v1 env: @@ -290,6 +370,10 @@ jobs: asset_name: ${{ steps.extract-artifacts.outputs.dgraph-ttl }} asset_content_type: application/zip + - name: Clean up dist + run: | + rm -rf dist + - name: Prepare graph-descriptions dist run: | docker create -ti --name graph-descriptions grapl/grapl-graph-descriptions-python-build:latest @@ -339,3 +423,72 @@ jobs: - name: Clean up grapl_analyzerlib dist run: | rm -rf dist + + js-tests: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + + - name: Install dobi + run: | + wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux + chmod +x dobi-linux + + - name: Run JS unit tests + run: | + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount js-unit-tests + + - name: Clean build + run: | + GRAPL_RELEASE_TARGET=release TAG=grapl-test ./dobi-linux --no-bind-mount clean-js-build + docker system prune -f + + release-js-services: + runs-on: ubuntu-latest + needs: [js-tests, integration-tests] + + steps: + + - uses: actions/checkout@v2 + + - name: Install dobi + run: | + wget https://github.com/dnephin/dobi/releases/download/v0.13.0/dobi-linux + chmod +x dobi-linux + + - name: Build JS services + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + GRAPL_RELEASE_TARGET=release TAG="$VERSION-$CHANNEL" ./dobi-linux --no-bind-mount js + + - name: Log in to Docker registry + run: | + echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username grapl --password-stdin + + - name: Publish JS images to DockerHub + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + docker push grapl/grapl-engagement-view:$VERSION-$CHANNEL + docker push grapl/grapl-graphql-endpoint:$VERSION-$CHANNEL + + - name: Extract JS artifacts from build + id: extract-js-artifacts + env: + VERSION: ${{ github.event.release.tag_name }} + run: | + cp dist/graphql-endpoint/lambda.zip graphql-endpoint-$VERSION-$CHANNEL.zip + echo "::set-output name=graphql-endpoint::graphql-endpoint-$VERSION-$CHANNEL.zip" + + - name: Upload graphql-endpoint to Github + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./${{ steps.extract-artifacts.outputs.graphql-endpoint }} + asset_name: ${{ steps.extract-artifacts.outputs.graphql-endpoint }} + asset_content_type: application/zip diff --git a/.gitignore b/.gitignore index 2c48a2bd2a..68759ebd5c 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ __pycache__/ *$py.class target/ +.cargo # C extensions *.so diff --git a/dobi.yaml b/dobi.yaml index afa8f54a89..54fb71f550 100644 --- a/dobi.yaml +++ b/dobi.yaml @@ -273,6 +273,14 @@ image=dynamodb-provision: # js images +image=engagement-view-build: + image: grapl/engagement-view-build + context: src/js/engagement_view + dockerfile: Dockerfile + target: engagement-view-build + tags: + - latest + image=engagement-view: image: grapl/grapl-engagement-view context: src/js/engagement_view @@ -343,7 +351,13 @@ job=build-rust: mounts: - dist artifact: - - ./dist/* + - ./dist/ + +job=run-rust-unit-tests: + use: rust-build + command: /bin/bash -c "cargo test --target=x86_64-unknown-linux-musl" + depends: + - rust-build job=run-node-identifier-integration-tests: use: rust-build @@ -373,6 +387,12 @@ job=run-node-identifier-integration-tests: # python jobs +job=run-grapl-analyzerlib-unit-tests: + use: grapl-analyzerlib-build + command: /bin/bash -c "source venv/bin/activate && cd grapl_analyzerlib && py.test -n auto -m 'not integration_test'" + depends: + - grapl-analyzerlib-build + job=run-grapl-analyzerlib-integration-tests: use: grapl-analyzerlib-build net-mode: grapl-integration-tests_default @@ -393,6 +413,12 @@ job=build-analyzer-executor: artifact: - ./dist/analyzer-executor/lambda.zip +job=run-analyzer-executor-unit-tests: + use: analyzer-executor-build + command: /bin/bash -c "source venv/bin/activate && cd analyzer_executor && py.test -n auto -m 'not integration_test'" + depends: + - build-analyzer-executor + job=build-engagement-creator: use: engagement-creator-build mounts: @@ -400,6 +426,12 @@ job=build-engagement-creator: artifact: - ./dist/engagement-creator/lambda.zip +job=run-engagement-creator-unit-tests: + use: engagement-creator-build + command: /bin/bash -c "source venv/bin/activate && cd engagement-creator && py.test -n auto -m 'not integration_test'" + depends: + - engagement-creator-build + job=build-engagement-edge: use: engagement-edge-build mounts: @@ -407,6 +439,12 @@ job=build-engagement-edge: artifact: - ./dist/engagement-edge/lambda.zip +job=run-engagement-edge-unit-tests: + use: engagement-edge-build + command: /bin/bash -c "source venv/bin/activate && cd engagement_edge && py.test -n auto -m 'not integration_test'" + depends: + - engagement-edge-build + job=build-dgraph-ttl: use: dgraph-ttl-build mounts: @@ -414,6 +452,12 @@ job=build-dgraph-ttl: artifact: - ./dist/dgraph-ttl/lambda.zip +job=run-dgraph-ttl-unit-tests: + use: dgraph-ttl-build + command: /bin/bash -c "source venv/bin/activate && cd dgraph-ttl && py.test -n auto -m 'not integration_test'" + depends: + - dgraph-ttl-build + job=build-model-plugin-deployer: use: model-plugin-deployer-build mounts: @@ -421,8 +465,22 @@ job=build-model-plugin-deployer: artifact: - ./dist/model-plugin-deployer/lambda.zip +job=run-model-plugin-deployer-unit-tests: + use: model-plugin-deployer-build + command: /bin/bash -c "source venv/bin/activate && cd model-plugin-deployer && py.test -n auto -m 'not integration_test'" + depends: + - model-plugin-deployer-build + # js jobs +# TODO: more normal build job for engagement-view w/ deploy artifact + +job=run-engagement-view-unit-tests: + use: engagement-view-build + command: /bin/bash -c "CI=true yarn test" + depends: + - engagement-view-build + job=build-graphql-endpoint: use: graphql-endpoint-build mounts: @@ -430,6 +488,8 @@ job=build-graphql-endpoint: artifact: - ./dist/graphql-endpoint/lambda.zip +# TODO: graphql endpoint unit tests + # TODO: graphql endpoint integration tests # @@ -454,7 +514,13 @@ alias=clean-rust-build: annotations: description: "Delete the rust build image" -alias=rust-integration: +alias=rust-unit-tests: + tasks: + - run-rust-unit-tests + annotations: + description: "Run the rust unit tests" + +alias=rust-integration-tests: tasks: - run-node-identifier-integration-tests annotations: @@ -491,7 +557,18 @@ alias=clean-python-build: annotations: description: "Delete the python build images" -alias=python-integration: +alias=python-unit-tests: + tasks: + - run-grapl-analyzerlib-unit-tests + - run-analyzer-executor-unit-tests + - run-engagement-creator-unit-tests + - run-engagement-edge-unit-tests + - run-dgraph-ttl-unit-tests + - run-model-plugin-deployer-unit-tests + annotations: + description: "Run the python unit tests" + +alias=python-integration-tests: tasks: - run-grapl-analyzerlib-integration-tests annotations: @@ -511,6 +588,12 @@ alias=clean-js-build: annotations: description: "Delete the js build images" +alias=js-unit-tests: + tasks: + - run-engagement-view-unit-tests + annotations: + description: "Run the js unit tests" + # TODO: js integration tests alias=build: @@ -529,10 +612,18 @@ alias=clean-build: annotations: description: "Delete all the build images" -alias=integration: +alias=unit-tests: + tasks: + - rust-unit-tests + - python-unit-tests + - js-unit-tests + annotations: + description: "Run all the unit tests" + +alias=integration-tests: tasks: - - rust-integration - - python-integration + - rust-integration-tests + - python-integration-tests # TODO: js integration tests annotations: description: "Run all the integration tests" diff --git a/package.json b/package.json deleted file mode 100644 index 8d4a413882..0000000000 --- a/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies": { - "formik": "^2.1.4", - "yup": "^0.29.1" - } -} diff --git a/src/js/engagement_view/Dockerfile b/src/js/engagement_view/Dockerfile index 2147687015..65fa94c8fc 100644 --- a/src/js/engagement_view/Dockerfile +++ b/src/js/engagement_view/Dockerfile @@ -1,8 +1,8 @@ FROM node:alpine3.10 AS engagement-view-build +RUN apk add bash WORKDIR /grapl COPY . . RUN yarn install -RUN CI=true yarn test RUN yarn build FROM syntaqx/serve AS grapl-engagement-view diff --git a/src/js/graphql_endpoint/Dockerfile b/src/js/graphql_endpoint/Dockerfile index b5293a7cc9..2208d32853 100644 --- a/src/js/graphql_endpoint/Dockerfile +++ b/src/js/graphql_endpoint/Dockerfile @@ -16,7 +16,6 @@ COPY --chown=grapl --from=grapl-graphql-endpoint-deps /home/grapl/lambda/node_mo RUN rm -rf lambda/node_modules/grpc/build/ RUN mkdir -p lambda/modules/ COPY modules lambda/modules -# TODO: run tests COPY server.js lambda/server.js RUN cd lambda && zip --quiet -9r /home/grapl/lambda.zip . RUN mkdir -p dist/graphql-endpoint && cp lambda.zip dist/graphql-endpoint/lambda.zip diff --git a/src/python/analyzer_executor/Dockerfile b/src/python/analyzer_executor/Dockerfile index a4a7fb98ca..2f3bbf0e91 100644 --- a/src/python/analyzer_executor/Dockerfile +++ b/src/python/analyzer_executor/Dockerfile @@ -4,7 +4,6 @@ WORKDIR /home/grapl COPY --chown=grapl . analyzer_executor COPY --from=grapl/grapl-analyzerlib-python-build /home/grapl/venv venv RUN /bin/bash -c "source venv/bin/activate && cd analyzer_executor && pip install ." -RUN /bin/bash -c "source venv/bin/activate && cd analyzer_executor && py.test -n auto -m 'not integration_test'" RUN cd venv/lib/python3.7/site-packages/ && zip --quiet -9r ~/lambda.zip ./ RUN cd analyzer_executor/src/ && zip -g ~/lambda.zip ./analyzer-executor.py RUN mkdir -p dist/analyzer-executor && cp ~/lambda.zip dist/analyzer-executor/lambda.zip diff --git a/src/python/engagement-creator/Dockerfile b/src/python/engagement-creator/Dockerfile index 2c447a2f36..5e3ab82108 100644 --- a/src/python/engagement-creator/Dockerfile +++ b/src/python/engagement-creator/Dockerfile @@ -4,7 +4,6 @@ WORKDIR /home/grapl COPY --chown=grapl . engagement-creator COPY --from=grapl/grapl-analyzerlib-python-build /home/grapl/venv venv RUN /bin/bash -c "source venv/bin/activate && cd engagement-creator && pip install ." -RUN /bin/bash -c "source venv/bin/activate && cd engagement-creator && py.test -n auto -m 'not integration_test'" RUN zip --quiet -9r lambda.zip venv/lib/python3.7/site-packages/ RUN zip -g lambda.zip engagement-creator/src/engagement-creator.py RUN mkdir -p dist/engagement-creator && cp lambda.zip dist/engagement-creator/lambda.zip diff --git a/src/python/engagement_edge/Dockerfile b/src/python/engagement_edge/Dockerfile index 8b88265143..51e436820f 100644 --- a/src/python/engagement_edge/Dockerfile +++ b/src/python/engagement_edge/Dockerfile @@ -4,7 +4,6 @@ WORKDIR /home/grapl COPY --chown=grapl . engagement_edge COPY --from=grapl/grapl-analyzerlib-python-build /home/grapl/venv venv RUN /bin/bash -c "source venv/bin/activate && cd engagement_edge && pip install ." -RUN /bin/bash -c "source venv/bin/activate && cd engagement_edge && py.test -n auto -m 'not integration_test'" RUN cd venv/lib/python3.7/site-packages/ && zip --quiet -9r ~/lambda.zip ./ RUN cd engagement_edge/src/ && zip -g ~/lambda.zip ./engagement_edge.py RUN mkdir -p dist/engagement-edge && cp lambda.zip dist/engagement-edge/lambda.zip diff --git a/src/python/grapl-dgraph-ttl/Dockerfile b/src/python/grapl-dgraph-ttl/Dockerfile index 6021388a11..e2403bb1c2 100644 --- a/src/python/grapl-dgraph-ttl/Dockerfile +++ b/src/python/grapl-dgraph-ttl/Dockerfile @@ -1,12 +1,11 @@ FROM grapl/grapl-analyzerlib-python-build:latest AS grapl-dgraph-ttl-build USER grapl WORKDIR /home/grapl -COPY --chown=grapl . ./grapl-dgraph-ttl +COPY --chown=grapl . ./dgraph-ttl COPY --from=grapl/grapl-analyzerlib-python-build /home/grapl/venv venv -RUN /bin/bash -c "source venv/bin/activate && pip install -r grapl-dgraph-ttl/requirements.txt" -RUN /bin/bash -c "source venv/bin/activate && cd grapl-dgraph-ttl && py.test -n auto -m 'not integration_test'" +RUN /bin/bash -c "source venv/bin/activate && pip install -r dgraph-ttl/requirements.txt" RUN cd venv/lib/python3.7/site-packages && zip --quiet -9r ../../../../lambda.zip . -RUN cd grapl-dgraph-ttl && zip -g ../lambda.zip app.py +RUN cd dgraph-ttl && zip -g ../lambda.zip app.py RUN mkdir -p dist/dgraph-ttl && cp lambda.zip dist/dgraph-ttl/lambda.zip FROM grapl/grapl-python-deploy AS grapl-dgraph-ttl @@ -14,4 +13,4 @@ USER grapl WORKDIR /home/grapl COPY --from=grapl-dgraph-ttl-build /home/grapl/lambda.zip lambda.zip COPY --from=grapl-dgraph-ttl-build /home/grapl/venv venv -COPY --from=grapl-dgraph-ttl-build /home/grapl/grapl-dgraph-ttl app +COPY --from=grapl-dgraph-ttl-build /home/grapl/dgraph-ttl app diff --git a/src/python/grapl-model-plugin-deployer/Dockerfile b/src/python/grapl-model-plugin-deployer/Dockerfile index 813c422950..fbb1a48839 100644 --- a/src/python/grapl-model-plugin-deployer/Dockerfile +++ b/src/python/grapl-model-plugin-deployer/Dockerfile @@ -1,12 +1,11 @@ FROM grapl/grapl-analyzerlib-python-build:latest AS grapl-model-plugin-deployer-build USER grapl WORKDIR /home/grapl -COPY --chown=grapl . grapl-model-plugin-deployer +COPY --chown=grapl . model-plugin-deployer COPY --from=grapl/grapl-analyzerlib-python-build /home/grapl/venv venv -RUN /bin/bash -c "source venv/bin/activate && cd grapl-model-plugin-deployer && pip install ." -RUN /bin/bash -c "source venv/bin/activate && cd grapl-model-plugin-deployer && py.test -n auto -m 'not integration_test'" +RUN /bin/bash -c "source venv/bin/activate && cd model-plugin-deployer && pip install ." RUN cd venv/lib/python3.7/site-packages/ && zip --quiet -9r ~/lambda.zip ./ -RUN cd grapl-model-plugin-deployer/src/ && zip -g ~/lambda.zip ./grapl_model_plugin_deployer.py +RUN cd model-plugin-deployer/src/ && zip -g ~/lambda.zip ./grapl_model_plugin_deployer.py RUN mkdir -p dist/model-plugin-deployer && cp ~/lambda.zip dist/model-plugin-deployer/lambda.zip FROM grapl/grapl-python-deploy AS grapl-model-plugin-deployer @@ -15,4 +14,4 @@ WORKDIR /home/grapl COPY --from=grapl-model-plugin-deployer-build /home/grapl/lambda.zip lambda.zip COPY --from=grapl-model-plugin-deployer-build /home/grapl/venv venv RUN /bin/bash -c "source venv/bin/activate && chalice new-project app/" -COPY --from=grapl-model-plugin-deployer-build /home/grapl/grapl-model-plugin-deployer/src/grapl_model_plugin_deployer.py app/app.py +COPY --from=grapl-model-plugin-deployer-build /home/grapl/model-plugin-deployer/src/grapl_model_plugin_deployer.py app/app.py diff --git a/src/python/grapl_analyzerlib/Dockerfile b/src/python/grapl_analyzerlib/Dockerfile index 95fa62fbef..9e9028081c 100644 --- a/src/python/grapl_analyzerlib/Dockerfile +++ b/src/python/grapl_analyzerlib/Dockerfile @@ -4,5 +4,4 @@ WORKDIR /home/grapl COPY --chown=grapl . grapl_analyzerlib COPY --from=grapl/grapl-graph-descriptions-python-build /home/grapl/venv venv RUN /bin/bash -c "source venv/bin/activate && cd grapl_analyzerlib && pip install ." -RUN /bin/bash -c "source venv/bin/activate && cd grapl_analyzerlib && py.test -n auto -m 'not integration_test'" RUN /bin/bash -c "source venv/bin/activate && cd grapl_analyzerlib && python setup.py sdist bdist_wheel" diff --git a/src/rust/.dockerignore b/src/rust/.dockerignore index 9715c739c8..d24c1a5ae4 100644 --- a/src/rust/.dockerignore +++ b/src/rust/.dockerignore @@ -1,2 +1,3 @@ target -*/target \ No newline at end of file +*/target +.cargo diff --git a/yarn-error.log b/yarn-error.log deleted file mode 100644 index f6ac58879d..0000000000 --- a/yarn-error.log +++ /dev/null @@ -1,123 +0,0 @@ -Arguments: - /home/andrea/.config/nvm/versions/node/v14.1.0/bin/node /home/andrea/.yarn/bin/yarn.js add formik yup @typescript/yup - -PATH: - /home/andrea/.cargo/bin:/home/andrea/.yarn/bin:/home/andrea/.config/yarn/global/node_modules/.bin:/home/andrea/.cargo/bin:/home/andrea/.yarn/bin:/home/andrea/.config/yarn/global/node_modules/.bin:/home/andrea/.config/nvm/versions/node/v14.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/local/games:/usr/sbin:/usr/bin:/usr/games:/sbin:/bin - -Yarn version: - 1.22.4 - -Node version: - 14.1.0 - -Platform: - linux x64 - -Trace: - Error: https://registry.yarnpkg.com/@typescript%2fyup: Not found - at Request.params.callback [as _callback] (/home/andrea/.yarn/lib/cli.js:66987:18) - at Request.self.callback (/home/andrea/.yarn/lib/cli.js:140748:22) - at Request.emit (events.js:315:20) - at Request. (/home/andrea/.yarn/lib/cli.js:141720:10) - at Request.emit (events.js:315:20) - at IncomingMessage. (/home/andrea/.yarn/lib/cli.js:141642:12) - at Object.onceWrapper (events.js:421:28) - at IncomingMessage.emit (events.js:327:22) - at endReadableNT (_stream_readable.js:1223:12) - at processTicksAndRejections (internal/process/task_queues.js:84:21) - -npm manifest: - { - "dependencies": { - "formik": "^2.1.4" - } - } - -yarn manifest: - No manifest - -Lockfile: - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - deepmerge@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - - formik@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/formik/-/formik-2.1.4.tgz#8deef07ec845ea98f75e03da4aad7aab4ac46570" - integrity sha512-oKz8S+yQBzuQVSEoxkqqJrKQS5XJASWGVn6mrs+oTWrBoHgByVwwI1qHiVc9GKDpZBU9vAxXYAKz2BvujlwunA== - dependencies: - deepmerge "^2.1.1" - hoist-non-react-statics "^3.3.0" - lodash "^4.17.14" - lodash-es "^4.17.14" - react-fast-compare "^2.0.1" - scheduler "^0.18.0" - tiny-warning "^1.0.2" - tslib "^1.10.0" - - hoist-non-react-statics@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - - "js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - - lodash-es@^4.17.14: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" - integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== - - lodash@^4.17.14: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - - loose-envify@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - - object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - - react-fast-compare@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" - integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== - - react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - - scheduler@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" - integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - - tiny-warning@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - - tslib@^1.10.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 4cf8abddb6..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,129 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/runtime@^7.9.6": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.4.tgz#a6724f1a6b8d2f6ea5236dbfe58c7d7ea9c5eb99" - integrity sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw== - dependencies: - regenerator-runtime "^0.13.4" - -deepmerge@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - -fn-name@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-3.0.0.tgz#0596707f635929634d791f452309ab41558e3c5c" - integrity sha512-eNMNr5exLoavuAMhIUVsOKF79SWd/zG104ef6sxBTSw+cZc6BXdQXDvYcGvp0VbxVVSp1XDUNoz7mg1xMtSznA== - -formik@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/formik/-/formik-2.1.4.tgz#8deef07ec845ea98f75e03da4aad7aab4ac46570" - integrity sha512-oKz8S+yQBzuQVSEoxkqqJrKQS5XJASWGVn6mrs+oTWrBoHgByVwwI1qHiVc9GKDpZBU9vAxXYAKz2BvujlwunA== - dependencies: - deepmerge "^2.1.1" - hoist-non-react-statics "^3.3.0" - lodash "^4.17.14" - lodash-es "^4.17.14" - react-fast-compare "^2.0.1" - scheduler "^0.18.0" - tiny-warning "^1.0.2" - tslib "^1.10.0" - -hoist-non-react-statics@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -lodash-es@^4.17.11, lodash-es@^4.17.14: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" - integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== - -lodash@^4.17.14, lodash@^4.17.15: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -loose-envify@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -property-expr@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.2.tgz#fff2a43919135553a3bc2fdd94bdb841965b2330" - integrity sha512-bc/5ggaYZxNkFKj374aLbEDqVADdYaLcFo8XBkishUWbaAdjlphaBFns9TvRA2pUseVL/wMFmui9X3IdNDU37g== - -react-fast-compare@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" - integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== - -react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -scheduler@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" - integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -synchronous-promise@^2.0.10: - version "2.0.13" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.13.tgz#9d8c165ddee69c5a6542862b405bc50095926702" - integrity sha512-R9N6uDkVsghHePKh1TEqbnLddO2IY25OcsksyFp/qBe7XYd0PVbKEWxhcdMhpLzE1I6skj5l4aEZ3CRxcbArlA== - -tiny-warning@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= - -tslib@^1.10.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -yup@^0.29.1: - version "0.29.1" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.29.1.tgz#35d25aab470a0c3950f66040ba0ff4b1b6efe0d9" - integrity sha512-U7mPIbgfQWI6M3hZCJdGFrr+U0laG28FxMAKIgNvgl7OtyYuUoc4uy9qCWYHZjh49b8T7Ug8NNDdiMIEytcXrQ== - dependencies: - "@babel/runtime" "^7.9.6" - fn-name "~3.0.0" - lodash "^4.17.15" - lodash-es "^4.17.11" - property-expr "^2.0.2" - synchronous-promise "^2.0.10" - toposort "^2.0.2"