From 155d2f44f5fb3cc685f00c1f0165a5e79a01170b Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Fri, 20 Nov 2020 10:21:05 +0100 Subject: [PATCH 01/22] Init commit --- .github/test_files/config_rasa_demo.yml | 50 +++++ .github/test_files/config_rasa_x_demo.yml | 36 ++++ .github/test_files/report_to_compare.json | 76 +++++++ .github/workflows/ci_summary.yml | 107 +++++++++ .github/workflows/main.yml | 101 +++++++++ .gitignore | 4 + README.md | 167 +++++++++++++- _img/img_1.png | Bin 0 -> 38054 bytes _img/img_2.png | Bin 0 -> 38777 bytes _img/img_3.png | Bin 0 -> 26911 bytes action.yml | 252 ++++++++++++++++++++++ scripts/cross_validation_results.py | 72 +++++++ scripts/generate_results_report.py | 63 ++++++ scripts/json_to_csv.py | 55 +++++ templates/comment_summary.tmpl | 91 ++++++++ templates/report_to_json.tmpl | 1 + 16 files changed, 1074 insertions(+), 1 deletion(-) create mode 100644 .github/test_files/config_rasa_demo.yml create mode 100644 .github/test_files/config_rasa_x_demo.yml create mode 100644 .github/test_files/report_to_compare.json create mode 100644 .github/workflows/ci_summary.yml create mode 100644 .github/workflows/main.yml create mode 100644 .gitignore create mode 100644 _img/img_1.png create mode 100644 _img/img_2.png create mode 100644 _img/img_3.png create mode 100644 action.yml create mode 100644 scripts/cross_validation_results.py create mode 100644 scripts/generate_results_report.py create mode 100644 scripts/json_to_csv.py create mode 100644 templates/comment_summary.tmpl create mode 100644 templates/report_to_json.tmpl diff --git a/.github/test_files/config_rasa_demo.yml b/.github/test_files/config_rasa_demo.yml new file mode 100644 index 0000000..45900e4 --- /dev/null +++ b/.github/test_files/config_rasa_demo.yml @@ -0,0 +1,50 @@ + +language: en +pipeline: +- name: WhitespaceTokenizer +- name: RegexFeaturizer +- name: LexicalSyntacticFeaturizer +- name: CountVectorsFeaturizer + OOV_token: oov + token_pattern: (?u)\b\w+\b +- name: CountVectorsFeaturizer + analyzer: char_wb + min_ngram: 1 + max_ngram: 4 +- name: DIETClassifier + epochs: 5 + ranking_length: 5 +- name: DucklingEntityExtractor + url: http://localhost:8000 + dimensions: + - email + - number + - amount-of-money +- name: EntitySynonymMapper +- name: ResponseSelector + retrieval_intent: out_of_scope + scale_loss: false + epochs: 5 +- name: ResponseSelector + retrieval_intent: faq + scale_loss: false + epochs: 5 +- name: ResponseSelector + retrieval_intent: chitchat + scale_loss: false + epochs: 5 +- name: FallbackClassifier + threshold: 0.7 +policies: +- name: TEDPolicy + max_history: 5 + epochs: 10 + batch_size: + - 32 + - 64 +- max_history: 6 + name: AugmentedMemoizationPolicy +- name: RulePolicy + core_fallback_threshold: 0.3 + core_fallback_action_name: "action_default_fallback" + enable_fallback_prediction: True diff --git a/.github/test_files/config_rasa_x_demo.yml b/.github/test_files/config_rasa_x_demo.yml new file mode 100644 index 0000000..7f862fc --- /dev/null +++ b/.github/test_files/config_rasa_x_demo.yml @@ -0,0 +1,36 @@ +# Configuration for Rasa NLU. +# https://rasa.com/docs/rasa/nlu/components/ +language: en + +pipeline: +# # No configuration for the NLU pipeline was provided. The following default pipeline was used to train your model. +# # If you'd like to customize it, uncomment and adjust the pipeline. +# # See https://rasa.com/docs/rasa/tuning-your-model for more information. + - name: WhitespaceTokenizer + - name: RegexFeaturizer + - name: LexicalSyntacticFeaturizer + - name: CountVectorsFeaturizer + - name: CountVectorsFeaturizer + analyzer: char_wb + min_ngram: 1 + max_ngram: 4 + - name: DIETClassifier + epochs: 10 + - name: EntitySynonymMapper + - name: ResponseSelector + epochs: 10 + - name: FallbackClassifier + threshold: 0.3 + ambiguity_threshold: 0.1 + +# Configuration for Rasa Core. +# https://rasa.com/docs/rasa/core/policies/ +policies: +# # No configuration for policies was provided. The following default policies were used to train your model. +# # If you'd like to customize them, uncomment and adjust the policies. +# # See https://rasa.com/docs/rasa/policies for more information. + - name: MemoizationPolicy + - name: TEDPolicy + max_history: 5 + epochs: 10 + - name: RulePolicy diff --git a/.github/test_files/report_to_compare.json b/.github/test_files/report_to_compare.json new file mode 100644 index 0000000..2fbe9a4 --- /dev/null +++ b/.github/test_files/report_to_compare.json @@ -0,0 +1,76 @@ +{ + "default": { + "config.yml": { + "entity_prediction": { + "macro_avg": { + "f1-score": 0.2378897757789324, + "precision": 0.7177262292340671, + "recall": 0.630076550644482, + "support": 1451 + }, + "micro_avg": { + "f1-score": 0.557902566009669, + "precision": 0.8231017770597738, + "recall": 0.7022742935906272, + "support": 1451 + }, + "weighted_avg": { + "f1-score": 0.6357964876470346, + "precision": 0.8108170836964997, + "recall": 0.7022742935906272, + "support": 1451 + } + }, + "intent_classification": { + "macro_avg": { + "f1-score": 0.78507804141552495, + "precision": 0.6249297611496761, + "recall": 0.22805363055392253, + "support": 4950 + }, + "micro_avg": { + "f1-score": 0.5612119662490412, + "precision": 0.9004178272980501, + "recall": 0.5224242424242425, + "support": 4950 + }, + "weighted_avg": { + "f1-score": 0.5845322720747205, + "precision": 0.8560612861880288, + "recall": 0.5224242424242425, + "support": 4950 + } + }, + "response_selection": { + "accuracy": 0.657748611812216, + "macro_avg": { + "f1-score": 0.4511394032023792, + "precision": 0.541429844814056, + "recall": 0.47505801532174247, + "support": 1981 + }, + "weighted_avg": { + "f1-score": 0.6172915897390211, + "precision": 0.6469121522031172, + "recall": 0.657748611812216, + "support": 1981 + } + }, + "story_prediction": { + "accuracy": 0.51005291005291, + "macro_avg": { + "f1-score": 0.5328584995251662, + "precision": 0.8363425925925926, + "recall": 0.8482142857142857, + "support": 189 + }, + "weighted_avg": { + "f1-score": 0.5091936869714647, + "precision": 0.9186067019400354, + "recall": 0.91005291005291, + "support": 189 + } + } + } + } + } diff --git a/.github/workflows/ci_summary.yml b/.github/workflows/ci_summary.yml new file mode 100644 index 0000000..25f6f76 --- /dev/null +++ b/.github/workflows/ci_summary.yml @@ -0,0 +1,107 @@ + +name: Continuous Integration - Test summary +on: + push: + branches: + - master + tags: + - '*' + pull_request: + +jobs: + test_action_1: + runs-on: ubuntu-latest + name: Test GH action - Rasa Demo - cfg 1 + + steps: + - uses: actions/checkout@v2 + + - name: Checkout Rasa Demo + uses: actions/checkout@v2 + with: + repository: RasaHQ/rasa-demo + path: rasa-demo + + - name: Use test configuration + run: | + cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml + + - id: action + name: Rasa Test & Train - Rasa Demo + uses: ./ + with: + rasa_version: '2.0.0-full' + configuration_name: 'Rasa Demo - Configuration 1' + workspace: ${{ github.workspace }}/rasa-demo + publish_summary: 'false' + + - uses: actions/upload-artifact@v2 + with: + name: rasa-demo-cfg-1 + path: rasa-demo/reports + + test_action_2: + runs-on: ubuntu-latest + name: Test GH action - Rasa Demo - cfg 2 + + steps: + - uses: actions/checkout@v2 + + - name: Checkout Rasa Demo + uses: actions/checkout@v2 + with: + repository: RasaHQ/rasa-demo + path: rasa-demo + + - name: Use test configuration + run: | + cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml + + - id: action + name: Rasa Test & Train - Rasa Demo + uses: ./ + with: + rasa_version: '2.0.0-full' + configuration_name: 'Rasa Demo - Configuration 2' + workspace: ${{ github.workspace }}/rasa-demo + publish_summary: 'false' + + - uses: actions/upload-artifact@v2 + with: + name: rasa-demo-cfg-2 + path: rasa-demo/reports + + test_action_publish_summary: + runs-on: ubuntu-latest + name: Test GH action - Rasa Demo - publish summary + needs: + - test_action_2 + - test_action_1 + + steps: + - uses: actions/checkout@v2 + + - name: Checkout Rasa Demo + uses: actions/checkout@v2 + with: + repository: RasaHQ/rasa-demo + path: rasa-demo + + - uses: actions/download-artifact@v2 + with: + name: rasa-demo-cfg-1 + path: rasa-demo/ + + - uses: actions/download-artifact@v2 + with: + name: rasa-demo-cfg-2 + path: rasa-demo/ + + - id: action + name: Rasa Test & Train - Rasa Demo + uses: ./ + with: + data_validate: 'false' + rasa_train: 'false' + rasa_test: 'false' + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..26fedf4 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,101 @@ + +name: Continuous Integration +on: + push: + branches: + - master + tags: + - '*' + pull_request: + +jobs: + test_action_x: + runs-on: ubuntu-latest + name: Test GH action - Rasa X Demo + + steps: + - uses: actions/checkout@v2 + - name: Checkout Rasa X Demo + uses: actions/checkout@v2 + with: + repository: RasaHQ/rasa-x-demo + path: rasa-x-demo + ref: '0.33.0' + + - name: Download Rasa X model + run: | + wget https://github.com/RasaHQ/rasa-x-demo/blob/0.33.0/models/model.tar.gz?raw=true \ + -O test_model.tar.gz + + - id: action + name: Rasa Test & Train - Rasa X Demo + uses: ./ + with: + rasa_version: '2.0.0-full' + workspace: ${{ github.workspace }}/rasa-x-demo + test_type: all + github_token: ${{ secrets.GITHUB_TOKEN }} + model: github_workspace/test_model.tar.gz + configuration: github_workspace/test_files/config_rasa_x_demo.yml + configuration_name: 'Rasa X Demo' + publish_summary: 'false' + + - name: Checkout output + run: | + echo ${{ fromJSON(steps.action.outputs.report).default['Rasa X Demo'].intent_classification.accuracy }} + + test_action: + runs-on: ubuntu-latest + name: Test GH action - Rasa Demo - nlu + needs: [test_action_x] + + steps: + - uses: actions/checkout@v2 + + - name: Checkout Rasa Demo + uses: actions/checkout@v2 + with: + repository: RasaHQ/rasa-demo + path: rasa-demo + + - name: Use test configuration + run: | + cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml + + - id: action + name: Rasa Test & Train - Rasa Demo + uses: ./ + with: + rasa_version: '2.0.0-full' + configuration_name: 'Rasa Demo - NLU' + workspace: ${{ github.workspace }}/rasa-demo + test_type: nlu + github_token: ${{ secrets.GITHUB_TOKEN }} + cross_validation: 'true' + compare_report: .github/test_files/report_to_compare.json + + test_action_origin: + runs-on: ubuntu-latest + name: Test GH action - Rasa Demo - all + + steps: + - uses: actions/checkout@v2 + + - name: Checkout Rasa Demo + uses: actions/checkout@v2 + with: + repository: RasaHQ/rasa-demo + path: rasa-demo + + - name: Use test configuration + run: | + cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml + + - id: action + name: Rasa Test & Train - Rasa Demo + uses: ./ + with: + rasa_version: '2.0.0-full' + configuration_name: 'Rasa Demo - ALL' + workspace: ${{ github.workspace }}/rasa-demo + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05bfeb1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +rasa-demo +report.json +results.json +report_master.json diff --git a/README.md b/README.md index db1649b..d0b531f 100644 --- a/README.md +++ b/README.md @@ -1 +1,166 @@ -# rasa-train-test-gha \ No newline at end of file +# Rasa Train and Test GitHub Action + +The GitHub action to run easily `rasa train` and `rasa test` in the CIs. + +## Input arguments + +In order to pass the input parameters to the GH action, you have to use the [`with`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepswith) argument in a step that uses the GH action, e.g. + +```yaml +jobs: + my_first_job: + steps: + - name: My first step + uses: RasaHQ/rasa-train-test-gha@master + with: + test_type: nlu +``` + +| Input | Description | Default | +| -------------------- | ----------------------------------------------------------------------------- | ------------------------- | +| `rasa_version` | The Rasa version used to run test and train | `latest-full` | +| `rasa_image` | Custom Docker image | `none` | +| `rasa_train` | Run the rasa train | `true` | +| `rasa_test` | Run the rasa test | `true` | +| `data_validate` | Validates domain and data files to check for possible mistakes | `true` | +| `workspace` | The root directory | `${{ github.workspace }}` | +| `train_args` | Additional arguments passed to the rasa train command | `none` | +| `test_args` | Additional arguments passed to the rasa test command | `none` | +| `test_type` | The types of tests to run (available types: core/nlu/all) | `all` | +| `publish_summary` | Publish tests summary as a PR comment | `true` | +| `github_token` | GitHub Token - required to add a comment with summary | `none` | +| `configuration` | Model configuration file | `config.yml` | +| `model` | Path to a file with a model. Use existing model instead of training a new one | `none` | +| `cross_validation` | Switch on cross validation mode. Any provided model will be ignored | `false` | +| `configuration_name` | Configuration name used in summary. If not provided a file name is used | `none` | +| `data_name` | Data name used in summary. If not provided a directory name is used | `default` | +| `compare_report` | Path to a report that will be used to compare results | `none` | + +## Outputs + +The list of available output variables: + +| Output | Description | +| -------- | --------------------- | +| `report` | Return report as JSON | + +## Example Usage + +In the example below we are using the Rasa Demo: + +```yaml +jobs: + tran_and_test: + # ... + steps: + # ... + - name: Train and Test Rasa Demo + uses: RasaHQ/rasa-train-test-gha@master + with: + # List of available tags: https://hub.docker.com/r/rasa/rasa/tags + rasa_version: '2.0.0-full' + github_token: ${{ secrets.GITHUB_TOKEN }} + # ... +``` + +The GitHub action by default adds a PR commit with summary (the summary comment can be disable by setting the `publish_summary` input argument to `false`): + +![Summary](_img/img_1.png) + +## Advanced examples - publish summary as a PR comment + +### Compare results with the base report + +It possible to compare result to the other report. Difference against the report that we compare to is included in brackets. + +```yaml +jobs: + tran_and_test: + # ... + steps: + # ... + - name: Train and Test Rasa Demo + uses: RasaHQ/rasa-train-test-gha@master + with: + # List of available tags: https://hub.docker.com/r/rasa/rasa/tags + rasa_version: '2.0.0-full' + github_token: ${{ secrets.GITHUB_TOKEN }} + compare_report: 'report_to_compare.json' + test_type: 'nlu' + # ... +``` + +![Compare](_img/img_3.png) + +### Publish results from multiple jobs as one comment + +The example shows how to run to tests for two different configurations and publish summary as one comment. + +```yaml +jobs: + train_and_test_cfg_1: + # ... + steps: + # ... + - name: Train and Test Rasa Demo - configuration 1 + uses: RasaHQ/rasa-train-test-gha@master + with: + # List of available tags: https://hub.docker.com/r/rasa/rasa/tags + rasa_version: '2.0.0-full' + publish_summary: 'false' + configuration_name: 'Rasa Demo - Configuration 1' + configuration: 'test_config/config_1.yml' + + - uses: actions/upload-artifact@v2 + with: + name: rasa-demo-cfg-1 + path: reports + # ... + + train_and_test_cfg_2: + # ... + steps: + # ... + - name: Train and Test Rasa Demo - configuration 2 + uses: RasaHQ/rasa-train-test-gha@master + with: + # List of available tags: https://hub.docker.com/r/rasa/rasa/tags + rasa_version: '2.0.0-full' + publish_summary: 'false' + configuration_name: 'Rasa Demo - Configuration 2' + configuration: test_config/config_2.yml + + - uses: actions/upload-artifact@v2 + with: + name: rasa-demo-cfg-2 + path: reports + # ... + + train_and_test_publish_summary: + # ... + needs: + - train_and_test_cfg_1 + - train_and_test_cfg_2 + steps: + - uses: actions/download-artifact@v2 + with: + name: rasa-demo-cfg-1 + + - uses: actions/download-artifact@v2 + with: + name: rasa-demo-cfg-2 + + # ... + - name: Train and Test Rasa Demo - publish summary + uses: RasaHQ/rasa-train-test-gha@master + with: + data_validate: 'false' + rasa_train: 'false' + rasa_test: 'false' + github_token: ${{ secrets.GITHUB_TOKEN }} + # ... +``` + +Example of summary published as a PR comment: + +![Combine results](_img/img_2.png) diff --git a/_img/img_1.png b/_img/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..567b1465873ee62781de9ebd1bb76990cfa83625 GIT binary patch literal 38054 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 literal 0 HcmV?d00001 diff --git a/_img/img_2.png b/_img/img_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d74535cb96d175a326ffae00ff72f4e9af5140c8 GIT binary patch literal 38777 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 literal 0 HcmV?d00001 diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..6dfa670 --- /dev/null +++ b/action.yml @@ -0,0 +1,252 @@ +name: 'Rasa Test & Train' +description: 'The GitHub action to run the rasa train and rasa test commands' +inputs: + rasa_version: + description: 'The Rasa version used to run test and train' + required: true + default: 'latest-full' + rasa_image: + description: 'Custom Docker image' + required: false + default: '' + rasa_train: + description: 'Run the rasa train' + required: true + default: 'true' + rasa_test: + description: 'Run the rasa test' + required: true + default: 'true' + data_validate: + description: 'Validates domain and data files to check for possible mistakes' + required: true + default: 'true' + workspace: + description: 'The root directory' + required: false + default: '${{ github.workspace }}' + train_args: + description: 'Additional arguments passed to the rasa train command' + required: false + default: '' + test_args: + description: 'Additional arguments passed to the rasa test command' + required: false + default: '' + test_type: + description: 'The types of tests to run (available types: core/nlu/all)' + required: true + default: 'all' + publish_summary: + description: 'Publish tests summary as a PR comment' + required: false + default: 'true' + github_token: + description: 'GitHub Token - required to add a comment with summary' + required: false + default: '' + configuration: + description: 'Model configuration file' + required: true + default: 'config.yml' + model: + description: 'Path to a file with a model. Use existing model instead of training a new one' + required: false + default: '' + cross_validation: + description: 'Switch on cross validation mode. Any provided model will be ignored' + required: false + default: 'false' + configuration_name: + description: 'Configuration name used in summary. If not provided a file name is used' + required: false + default: '' + data_name: + description: 'Data name used in summary. If not provided a directory name is used' + required: false + default: 'default' + compare_report: + description: 'Path to a report that will be used to compare results' + required: false + default: '' +outputs: + report: + description: "Return report as JSON" + value: ${{ steps.report_output.outputs.report }} +runs: + using: "composite" + steps: + - name: Set environment + shell: bash + run: |- + mkdir -p ${{ inputs.workspace }}/models + chmod 777 ${{ inputs.workspace }}/models + mkdir -p ${{ inputs.workspace }}/results + chmod 777 ${{ inputs.workspace }}/results + + case "${{ inputs.test_type }}" in + all) + echo TEST_TYPE="" >> $GITHUB_ENV + ;; + nlu) + echo TEST_TYPE=nlu >> $GITHUB_ENV + echo DEFAULT_ARGS="--config /app/${{ inputs.configuration }}" >> $GITHUB_ENV + ;; + core) + echo TEST_TYPE=core >> $GITHUB_ENV + ;; + *) + echo "::error::Unknown test type: ${{ inputs.test_type }} (use: core/nlu/all)" + exit 1 + esac + + # Set a model path + if [[ -n "${{ inputs.model }}" ]];then + echo MODEL_ARGS="--model /app/${{ inputs.model }}" >> $GITHUB_ENV + fi + + # Set cross validation + if [[ "${{ inputs.cross_validation }}" == "true" ]];then + echo CROSS_VALIDATION_ARGS="--cross-validation" >> $GITHUB_ENV + fi + + # Set docker args + echo DOCKER_ARGS="--rm --tmpfs /.config -e MPLCONFIGDIR=/tmp/.mplconfigdir \ + -e CI=${CI} -v ${{ github.workspace }}:/app/github_workspace -v ${{ inputs.workspace }}:/app -v ${{ inputs.workspace }}/models:/app/models \ + -v ${{ inputs.workspace }}/results:/app/results" >> $GITHUB_ENV + + # Set environment variables for generating a report + echo "SUMMARY_FILE=${{ inputs.workspace }}/reports/report.json" >> $GITHUB_ENV + + if [[ -n "${{ inputs.configuration_name }}" ]]; then + echo "CONFIG=${{ inputs.configuration_name }}" >> $GITHUB_ENV + else + echo "CONFIG=${{ inputs.configuration }}" >> $GITHUB_ENV + fi + + echo "DATASET_NAME=${{ inputs.data_name }}" >> $GITHUB_ENV + echo "RESULT_DIR=${{ inputs.workspace }}/results" >> $GITHUB_ENV + + - name: Set the Rasa version + shell: bash + run: | + DOCKERHUB_TAGS_URL="https://registry.hub.docker.com/v2/repositories/rasa/rasa/tags?page_size=10000" + # Get the latest version + if [[ "${{ inputs.rasa_version }}" == "latest-full" ]]; then + LATEST_RASA_VERSION=$(curl -s ${DOCKERHUB_TAGS_URL} | jq -r '.results[].name' | grep -E 'full' | grep -vE 'latest' | sort -Vr | head -n1) + echo "RASA_VERSION=${LATEST_RASA_VERSION}" >> $GITHUB_ENV + else + # Validate Rasa version + CHECK_VERSION=$(curl --silent ${DOCKERHUB_TAGS_URL} | jq -r '.results[] | select(.name=="${{ inputs.rasa_version }}") | .name') + if [[ "$CHECK_VERSION" != "${{ inputs.rasa_version }}" ]]; then + echo "::error::Rasa in ${{ inputs.rasa_version }} version doesn't exist. Check if the given Rasa version is valid, https://hub.docker.com/r/rasa/rasa/tags" && exit 1 + fi + echo "RASA_VERSION=${{ inputs.rasa_version }}" >> $GITHUB_ENV + fi + + - name: Set the Rasa image + shell: bash + run: | + if [[ -z "${{ inputs.rasa_image }}" ]]; then + echo "RASA_IMAGE=rasa/rasa:${{ env.RASA_VERSION }}" >> $GITHUB_ENV + else + echo "RASA_IMAGE=${{ inputs.rasa_image }}" >> $GITHUB_ENV + fi + + - name: Data Validation + shell: bash + run: | + if [[ "${{ inputs.data_validate }}" == "true" ]]; then + echo "Run data validation" + echo + docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} data validate + else + echo "::warning::Data validation is disabled. In order to turn on data validation set the data_validate parameter to 'true'." + fi + + - name: Run the rasa train command + shell: bash + run: | + if [[ -n "${{ inputs.model }}" ]]; then + echo + echo "Use model ${{ inputs.model }}. Skipping training" + echo + elif [[ "${{ inputs.rasa_train }}" == "true" ]]; then + echo "Run the rasa train" + echo "" + docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} train ${{ env.TEST_TYPE }} ${{ env.DEFAULT_ARGS }} ${{ inputs.train_args }} + else + echo "::warning::The rasa train is disabled. In order to turn on the rasa train set the rasa_train parameter to 'true'." + fi + + - name: Run the test command + shell: bash + run: | + if [[ "${{ inputs.rasa_test }}" == "true" ]]; then + echo "Run the rasa test" + echo "" + docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} test ${{ env.TEST_TYPE }} ${{ env.MODEL_ARGS }} ${{ env.CROSS_VALIDATION_ARGS }} ${{ env.DEFAULT_ARGS }} ${{ inputs.test_args }} + else + echo "::warning::The rasa train is disabled. In order to turn on the rasa train set the rasa_train parameter to 'true'." + fi + + - name: Generate a report + id: report_output + shell: bash + run: | + mkdir -p ${{ inputs.workspace }}/reports + python3 ${{ github.action_path }}/scripts/generate_results_report.py + + # Copy a report from the current one if the report to compare wasn't provided + cp ${{ inputs.workspace }}/reports/report.json ${{ inputs.workspace }}/reports/report_master.json + + if [[ -n "${{ inputs.compare_report }}" && -e "${{ inputs.compare_report }}" ]]; then + cp ${{ inputs.compare_report }} ${{ inputs.workspace }}/reports/report_master.json + else + echo "::warning::The report ${{ inputs.compare_report }} to compare doesn't exist." + fi + + echo "::set-output name=report::$(docker run --rm -v ${{ github.action_path }}/templates:/templates \ + -v ${{ inputs.workspace }}/reports/report.json:/report.json hairyhenderson/gomplate -d report=/report.json \ + -f /templates/report_to_json.tmpl)" + + # Convert JSON to CSV + python3 ${{ github.action_path }}/scripts/json_to_csv.py ${{ inputs.workspace }}/reports/report.json ${{ inputs.workspace }}/reports/report.csv + + - name: Publish summary as a comment in a PR + shell: bash + run: | + if [[ -z "${{ inputs.github_token }}" && "${{ inputs.publish_summary }}" == "true" && "${{ github.event_name }}" == "pull_request" ]]; then + echo "::warning::The GITHUB_TOKEN is required. Set the 'github_token' input parameter in order to publish summary." + elif [[ "${{ inputs.publish_summary }}" == "true" && "${{ github.event_name }}" == "pull_request" ]]; then + docker run --rm \ + -v ${{ github.action_path }}/templates:/templates \ + -v ${{ inputs.workspace }}/reports:/reports hairyhenderson/gomplate -d data=/reports/report.json -d results_master=/reports/report_master.json \ + -f /templates/comment_summary.tmpl > comment_summary.md + + OUTPUT=$(cat comment_summary.md) + + if [[ "${{ inputs.cross_validation }}" == "true" ]]; then + pip3 install pytablewriter + OUTPUT="${OUTPUT}\n$(python3 ${{ github.action_path }}/scripts/cross_validation_results.py)" + fi + + OUTPUT="${OUTPUT//$'\n'/'\n'}" + + curl -X POST -s -H "Authorization: token ${{ inputs.github_token }}" -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.number }}/comments -d "{\"body\":\"Commit: ${{ github.sha }}\n$OUTPUT\"}" + + elif [[ "${{ github.event_name }}" != "pull_request" ]]; then + echo + echo "::warning::Publishing summary as a comment in a PR is available only for a pull request." + echo + else + echo + echo "Publishing summary as a comment in a PR is disabled. In order to enabled it set the 'publish_summary' input parameter to 'true'." + echo + fi + + - name: Clean + shell: bash + run: | + rm -rf ${{ inputs.workspace }}/reports/report_master.json diff --git a/scripts/cross_validation_results.py b/scripts/cross_validation_results.py new file mode 100644 index 0000000..2e9ec1b --- /dev/null +++ b/scripts/cross_validation_results.py @@ -0,0 +1,72 @@ +from pytablewriter import MarkdownTableWriter +import json +import os + +result_dir = os.environ["RESULT_DIR"] + +def intent_table(): + writer = MarkdownTableWriter() + writer.table_name = "Intent Cross-Validation Results" + + with open(f"{result_dir}/intent_report.json", "r") as f: + data = json.loads(f.read()) + + cols = ["support", "f1-score", "confused_with"] + writer.headers = ["class"] + cols + + classes = list(data.keys()) + try: + classes.remove("accuracy") + except: + pass + classes.sort(key=lambda x: data[x]["support"], reverse=True) + + def format_cell(data, c, k): + if not data[c].get(k): + return "N/A" + if k == "confused_with": + return ", ".join([f"{k}({v})" for k, v in data[c][k].items()]) + else: + return data[c][k] + + writer.value_matrix = [ + [c] + [format_cell(data, c, k) for k in cols] for c in classes + ] + + return writer.dumps() + + +def entity_table(): + + writer = MarkdownTableWriter() + writer.table_name = "Entity Cross-Validation Results" + + with open(f"{result_dir}/DIETClassifier_report.json", "r") as f: + data = json.loads(f.read()) + + cols = ["support", "f1-score", "precision", "recall"] + writer.headers = ["entity"] + cols + + classes = list(data.keys()) + classes.sort(key=lambda x: data[x]["support"], reverse=True) + + def format_cell(data, c, k): + if not data[c].get(k): + return "N/A" + else: + return data[c][k] + + writer.value_matrix = [ + [c] + [format_cell(data, c, k) for k in cols] for c in classes + ] + + return writer.dumps() + + +intents = intent_table() +entities = entity_table() + + +print(intents) +print("\n\n\n") +print(entities) diff --git a/scripts/generate_results_report.py b/scripts/generate_results_report.py new file mode 100644 index 0000000..f9b3e89 --- /dev/null +++ b/scripts/generate_results_report.py @@ -0,0 +1,63 @@ +# Collect the results of the various model test runs which are done as part of +# The model regression CI pipeline and dump them as a single file artifact.This artifact will the then be published at the end of the tests. +import json +import os + +SUMMARY_FILE = os.environ["SUMMARY_FILE"] +CONFIG = os.environ["CONFIG"] +DATASET = os.environ["DATASET_NAME"] +task_mapping = { + "story_report.json": "story_prediction", + "intent_report.json": "intent_classification", + "CRFEntityExtractor_report.json": "entity_prediction", + "DIETClassifier_report.json": "entity_prediction", + "response_selection_report.json": "response_selection", +} + + +def generate_json(file, task, data): + if not DATASET in data: + data = {DATASET: {CONFIG: {}}, **data} + elif not CONFIG in data[DATASET]: + data[DATASET] = {CONFIG: {}, **data[DATASET]} + + data[DATASET][CONFIG] = { + **data[DATASET][CONFIG], + } + + data[DATASET][CONFIG][task] = {**read_results(file)} + + return data + + +def read_results(file): + with open(file) as json_file: + data = json.load(json_file) + + keys = ["accuracy", "weighted avg", "macro avg", "micro avg"] + key_mapping = { + "weighted avg": "weighted_avg", + "macro avg": "macro_avg", + "micro avg": "micro_avg", + "accuracy": "accuracy" + } + result = {key_mapping[key]: data[key] for key in keys if key in data} + + return result + + +if __name__ == "__main__": + data = {} + if os.path.exists(SUMMARY_FILE): + with open(SUMMARY_FILE) as json_file: + data = json.load(json_file) + + for dirpath, dirnames, files in os.walk(os.environ["RESULT_DIR"]): + for f in files: + if f not in task_mapping.keys(): + continue + + data = generate_json(os.path.join(dirpath, f), task_mapping[f], data) + + with open(SUMMARY_FILE, "w") as f: + json.dump(data, f, sort_keys=True, indent=2) diff --git a/scripts/json_to_csv.py b/scripts/json_to_csv.py new file mode 100644 index 0000000..5f34af0 --- /dev/null +++ b/scripts/json_to_csv.py @@ -0,0 +1,55 @@ +import csv, json, sys + +def flattenjson(b, delim): + val = {} + for i in b.keys(): + if isinstance( b[i], dict ): + get = flattenjson( b[i], delim ) + for j in get.keys(): + val[ i + delim + j ] = get[j] + else: + val[i] = b[i] + + return val + + +header = [ + "macro_avg", + "micro_avg", + "weighted_avg", +] + +if sys.argv[1] is not None and sys.argv[2] is not None: + fileInput = sys.argv[1] + fileOutput = sys.argv[2] + inputFile = open(fileInput) + + dataJSON = json.load(inputFile) + data = flattenjson(dataJSON, "__") + inputFile.close() + + with open(fileOutput, "w") as file: + csv_file = csv.writer(file) + + header_names = [] + for header_name in header: + for field in ["f1-score", "precision", "recall", "support"]: + header_names.append(header_name+"__"+field) + header_names.append("accuracy") + + csv_file.writerow(["name"] + header_names) + + for data_name in dataJSON: + for configuration in dataJSON[data_name]: + for row in dataJSON[data_name][configuration]: + data = dataJSON[data_name][configuration] + row_data = flattenjson(data[row], "__") + + result = [f"{data_name}/{configuration}/{row}"] + for field in header_names: + try: + result.append(row_data[field]) + except KeyError: + result.append("n/a") + + csv_file.writerow(result) diff --git a/templates/comment_summary.tmpl b/templates/comment_summary.tmpl new file mode 100644 index 0000000..2468042 --- /dev/null +++ b/templates/comment_summary.tmpl @@ -0,0 +1,91 @@ +{{- /* + +The template reads a file with a report (the report file is available +as an artifact in the model regression tests workflow) and returns +a markdown table with a summary of the tests. + +*/ -}} +{{- /* + +The accuracy_tpl template returns data for the accuracy field. + +*/ -}} +{{ define "accuracy_tpl" -}} +{{- if has .master "accuracy" -}} +{{ printf "%.4f" .branch.accuracy }} ({{ printf "%.2f" (.master.accuracy | math.Sub .branch.accuracy) }}) +{{- else -}} +{{ printf "%.4f" .branch.accuracy }} (`no data`) +{{- end -}} +{{- end -}} +{{- /* + +The micro_avg_tpl template returns data for the "micro avg" field. + +*/ -}} +{{ define "micro_avg_tpl" -}} +{{- if has .master.micro_avg "f1-score" -}} +{{ printf "%.4f" (index .branch.micro_avg "f1-score") }} ({{ printf "%.2f" ((index .master.micro_avg "f1-score") | math.Sub (index .branch.micro_avg "f1-score")) }}) +{{- else -}} +{{ printf "%.4f" (index .branch.micro_avg "f1-score") }} (`no data`) +{{- end -}} +{{- end -}} +{{- /* + +Render Markdown with results. + +*/ -}} +{{- $results_master := (datasource "results_master") -}} +{{ range $dataset, $config := (datasource "data")}} +{{- $dataset_master := (index $results_master $dataset) -}} +Data: `{{$dataset}}` + +| Configuration | Intent Classification Micro F1 | Entity Recognition Micro F1 | Response Selection Micro F1 | Story Recognition Micro F1 | +|---------------|-----------------|-----------------|-------------------|-------------------| +{{ range $config_name, $config_data := $config -}} +| `{{ $config_name }}` | +{{- if has $config_data "intent_classification" -}} +{{- /* Use results from branch if there is lack of data doesn't exist in results from scheduled version */ -}} +{{- $intent_class_master := $config_data.intent_classification -}} +{{- if has $dataset_master $config_name -}} +{{- $intent_class_master = (index $dataset_master $config_name).intent_classification -}} +{{- end -}} +{{- $intent_class := index $config_data.intent_classification -}} +{{- if has (index $intent_class "micro_avg") "f1-score" -}}{{ template "micro_avg_tpl" (dict "branch" $intent_class "master" $intent_class_master) }}{{- else if has $intent_class "accuracy" -}}{{ template "accuracy_tpl" (dict "branch" $intent_class "master" $intent_class_master) }}{{- else -}}`no data`{{- end -}} | +{{- else -}} +`no data`| +{{- end -}} +{{- if has $config_data "entity_prediction" -}} +{{- /* Use results from branch if there is lack of data doesn't exist in results from scheduled version */ -}} +{{- $entity_class_master := index $config_data.entity_prediction -}} +{{- if has $dataset_master $config_name -}} +{{- $entity_class_master = (index $dataset_master $config_name).entity_prediction -}} +{{- end -}} +{{- $entity_class := $config_data.entity_prediction -}} +{{- if has (index $entity_class "micro_avg") "f1-score" -}}{{ template "micro_avg_tpl" (dict "branch" $entity_class "master" $entity_class_master) }}{{- else if has $entity_class "accuracy" -}}{{ template "accuracy_tpl" (dict "branch" $entity_class "master" $entity_class_master) }}{{- else -}}`no data`{{- end -}} | +{{- else -}} +`no data`| +{{- end -}} +{{- if has $config_data "response_selection" -}} +{{- /* Use results from branch if there is lack of data doesn't exist in results from scheduled version */ -}} +{{- $response_class_master := index $config_data.response_selection -}} +{{- if has $dataset_master $config_name -}} +{{- $response_class_master = (index $dataset_master $config_name).response_selection -}} +{{- end -}} +{{- $response_class := $config_data.response_selection -}} +{{- if has (index $response_class "micro_avg") "f1-score" -}}{{ template "micro_avg_tpl" (dict "branch" $response_class "master" $response_class_master) }}{{- else if has $response_class "accuracy" -}}{{ template "accuracy_tpl" (dict "branch" $response_class "master" $response_class_master) }}{{- else -}}`no data`{{- end -}} | +{{- else -}} +`no data`| +{{- end -}} +{{- if has $config_data "story_prediction" -}} +{{- /* Use results from branch if there is lack of data doesn't exist in results from scheduled version */ -}} +{{- $story_class_master := index $config_data.story_prediction -}} +{{- if has $dataset_master $config_name -}} +{{- $story_class_master = (index $dataset_master $config_name).story_prediction -}} +{{- end -}} +{{- $story_class := $config_data.story_prediction -}} +{{- if has (index $story_class "micro_avg") "f1-score" -}}{{ template "micro_avg_tpl" (dict "branch" $story_class "master" $story_class_master) }}{{- else if has $story_class "accuracy" -}}{{ template "accuracy_tpl" (dict "branch" $story_class "master" $story_class_master) }}{{- else -}}`no data`{{- end -}} | +{{- else -}} +`no data`| +{{- end }} +{{end}} +{{end}} diff --git a/templates/report_to_json.tmpl b/templates/report_to_json.tmpl new file mode 100644 index 0000000..c63078d --- /dev/null +++ b/templates/report_to_json.tmpl @@ -0,0 +1 @@ +{{- datasource "report" | toJSON -}} From 3ce581ec8bd77a46d657dc0199b7527f1d99c9b8 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Wed, 2 Dec 2020 12:02:21 +0100 Subject: [PATCH 02/22] mend --- .github/test_files/config_rasa_x_demo.yml | 6 +++--- .github/workflows/ci_summary.yml | 16 ++++++---------- action.yml | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/test_files/config_rasa_x_demo.yml b/.github/test_files/config_rasa_x_demo.yml index 7f862fc..eba35bc 100644 --- a/.github/test_files/config_rasa_x_demo.yml +++ b/.github/test_files/config_rasa_x_demo.yml @@ -15,10 +15,10 @@ pipeline: min_ngram: 1 max_ngram: 4 - name: DIETClassifier - epochs: 10 + epochs: 5 - name: EntitySynonymMapper - name: ResponseSelector - epochs: 10 + epochs: 5 - name: FallbackClassifier threshold: 0.3 ambiguity_threshold: 0.1 @@ -32,5 +32,5 @@ policies: - name: MemoizationPolicy - name: TEDPolicy max_history: 5 - epochs: 10 + epochs: 5 - name: RulePolicy diff --git a/.github/workflows/ci_summary.yml b/.github/workflows/ci_summary.yml index 25f6f76..e507b38 100644 --- a/.github/workflows/ci_summary.yml +++ b/.github/workflows/ci_summary.yml @@ -20,11 +20,10 @@ jobs: uses: actions/checkout@v2 with: repository: RasaHQ/rasa-demo - path: rasa-demo - name: Use test configuration run: | - cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml + cp .github/test_files/config_rasa_demo.yml config.yml - id: action name: Rasa Test & Train - Rasa Demo @@ -32,13 +31,12 @@ jobs: with: rasa_version: '2.0.0-full' configuration_name: 'Rasa Demo - Configuration 1' - workspace: ${{ github.workspace }}/rasa-demo publish_summary: 'false' - uses: actions/upload-artifact@v2 with: name: rasa-demo-cfg-1 - path: rasa-demo/reports + path: reports test_action_2: runs-on: ubuntu-latest @@ -51,11 +49,10 @@ jobs: uses: actions/checkout@v2 with: repository: RasaHQ/rasa-demo - path: rasa-demo - name: Use test configuration run: | - cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml + cp .github/test_files/config_rasa_demo.yml config.yml - id: action name: Rasa Test & Train - Rasa Demo @@ -63,13 +60,12 @@ jobs: with: rasa_version: '2.0.0-full' configuration_name: 'Rasa Demo - Configuration 2' - workspace: ${{ github.workspace }}/rasa-demo publish_summary: 'false' - uses: actions/upload-artifact@v2 with: name: rasa-demo-cfg-2 - path: rasa-demo/reports + path: reports test_action_publish_summary: runs-on: ubuntu-latest @@ -90,12 +86,12 @@ jobs: - uses: actions/download-artifact@v2 with: name: rasa-demo-cfg-1 - path: rasa-demo/ - uses: actions/download-artifact@v2 with: name: rasa-demo-cfg-2 - path: rasa-demo/ + + - run: ls -la - id: action name: Rasa Test & Train - Rasa Demo diff --git a/action.yml b/action.yml index 6dfa670..ea35d9f 100644 --- a/action.yml +++ b/action.yml @@ -202,7 +202,7 @@ runs: if [[ -n "${{ inputs.compare_report }}" && -e "${{ inputs.compare_report }}" ]]; then cp ${{ inputs.compare_report }} ${{ inputs.workspace }}/reports/report_master.json - else + elif [[ -n "${{ inputs.compare_report }}" && ! -e "${{ inputs.compare_report }}" ]]; then echo "::warning::The report ${{ inputs.compare_report }} to compare doesn't exist." fi From 68bb823e0b50ca509605260505b774386a088dad Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Wed, 2 Dec 2020 12:09:24 +0100 Subject: [PATCH 03/22] Init commit --- .github/workflows/{main.yml => ci.yml} | 26 ++++- .github/workflows/ci_summary.yml | 57 ++++------- .gitignore | 1 - README.md | 136 ++++++++++++++++--------- _img/img_4.png | Bin 0 -> 176176 bytes _img/img_5.png | Bin 0 -> 77093 bytes action.yml | 15 +-- examples/report/report.csv | 5 + examples/report/report.json | 76 ++++++++++++++ scripts/generate_results_report.py | 3 +- 10 files changed, 218 insertions(+), 101 deletions(-) rename .github/workflows/{main.yml => ci.yml} (75%) create mode 100644 _img/img_4.png create mode 100644 _img/img_5.png create mode 100644 examples/report/report.csv create mode 100644 examples/report/report.json diff --git a/.github/workflows/main.yml b/.github/workflows/ci.yml similarity index 75% rename from .github/workflows/main.yml rename to .github/workflows/ci.yml index 26fedf4..711c109 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/ci.yml @@ -9,12 +9,15 @@ on: pull_request: jobs: + # Test the GH action on Rasa X Demo data + # https://github.com/RasaHQ/rasa-x-demo test_action_x: runs-on: ubuntu-latest name: Test GH action - Rasa X Demo steps: - uses: actions/checkout@v2 + - name: Checkout Rasa X Demo uses: actions/checkout@v2 with: @@ -44,9 +47,18 @@ jobs: run: | echo ${{ fromJSON(steps.action.outputs.report).default['Rasa X Demo'].intent_classification.accuracy }} + - name: Checkout output - if + if: fromJSON(steps.action.outputs.report).default['Rasa X Demo'].intent_classification.accuracy <= 0.5 + run: | + echo "::error::${{ fromJSON(steps.action.outputs.report).default['Rasa X Demo'].intent_classification.accuracy }}" + exit 1 + + # Test the GH action on Rasa Demo data + # https://github.com/RasaHQ/rasa-x-demo + # Test type: NLU test_action: runs-on: ubuntu-latest - name: Test GH action - Rasa Demo - nlu + name: Test GH action - Rasa Demo - NLU needs: [test_action_x] steps: @@ -71,12 +83,18 @@ jobs: workspace: ${{ github.workspace }}/rasa-demo test_type: nlu github_token: ${{ secrets.GITHUB_TOKEN }} + test_args: '-f 3' + # Use cross validation cross_validation: 'true' + # Compare results to the test report compare_report: .github/test_files/report_to_compare.json - test_action_origin: + # Test the GH action on Rasa Demo data + # https://github.com/RasaHQ/rasa-x-demo + # Test type: ALL + test_action_all: runs-on: ubuntu-latest - name: Test GH action - Rasa Demo - all + name: Test GH action - Rasa Demo - ALL steps: - uses: actions/checkout@v2 @@ -96,6 +114,6 @@ jobs: uses: ./ with: rasa_version: '2.0.0-full' - configuration_name: 'Rasa Demo - ALL' + configuration_name: 'Rasa Demo' workspace: ${{ github.workspace }}/rasa-demo github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci_summary.yml b/.github/workflows/ci_summary.yml index e507b38..b61fc71 100644 --- a/.github/workflows/ci_summary.yml +++ b/.github/workflows/ci_summary.yml @@ -20,10 +20,11 @@ jobs: uses: actions/checkout@v2 with: repository: RasaHQ/rasa-demo + path: rasa-demo - name: Use test configuration run: | - cp .github/test_files/config_rasa_demo.yml config.yml + cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml - id: action name: Rasa Test & Train - Rasa Demo @@ -31,16 +32,18 @@ jobs: with: rasa_version: '2.0.0-full' configuration_name: 'Rasa Demo - Configuration 1' + workspace: ${{ github.workspace }}/rasa-demo publish_summary: 'false' - uses: actions/upload-artifact@v2 with: name: rasa-demo-cfg-1 - path: reports + path: rasa-demo/reports test_action_2: runs-on: ubuntu-latest name: Test GH action - Rasa Demo - cfg 2 + needs: [test_action_1] steps: - uses: actions/checkout@v2 @@ -49,10 +52,16 @@ jobs: uses: actions/checkout@v2 with: repository: RasaHQ/rasa-demo + path: rasa-demo + + - uses: actions/download-artifact@v2 + with: + name: rasa-demo-cfg-1 + path: rasa-demo/reports - name: Use test configuration run: | - cp .github/test_files/config_rasa_demo.yml config.yml + cp .github/test_files/config_rasa_demo.yml rasa-demo/config.yml - id: action name: Rasa Test & Train - Rasa Demo @@ -60,44 +69,12 @@ jobs: with: rasa_version: '2.0.0-full' configuration_name: 'Rasa Demo - Configuration 2' - publish_summary: 'false' + workspace: ${{ github.workspace }}/rasa-demo + github_token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/upload-artifact@v2 with: name: rasa-demo-cfg-2 - path: reports - - test_action_publish_summary: - runs-on: ubuntu-latest - name: Test GH action - Rasa Demo - publish summary - needs: - - test_action_2 - - test_action_1 - - steps: - - uses: actions/checkout@v2 - - - name: Checkout Rasa Demo - uses: actions/checkout@v2 - with: - repository: RasaHQ/rasa-demo - path: rasa-demo - - - uses: actions/download-artifact@v2 - with: - name: rasa-demo-cfg-1 - - - uses: actions/download-artifact@v2 - with: - name: rasa-demo-cfg-2 - - - run: ls -la - - - id: action - name: Rasa Test & Train - Rasa Demo - uses: ./ - with: - data_validate: 'false' - rasa_train: 'false' - rasa_test: 'false' - github_token: ${{ secrets.GITHUB_TOKEN }} + path: | + rasa-demo/results + rasa-demo/reports diff --git a/.gitignore b/.gitignore index 05bfeb1..b3f8862 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ rasa-demo -report.json results.json report_master.json diff --git a/README.md b/README.md index d0b531f..fdc8983 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,13 @@ The list of available output variables: | -------- | --------------------- | | `report` | Return report as JSON | +## Report + +The GH action generates two reports, a report with a summary of run tests, the report is available as JSON and CSV file. The example of a report generated by the GH action can be found [here](examples/). + ## Example Usage -In the example below we are using the Rasa Demo: +In the example below, we are using [the Rasa Demo data](https://github.com/RasaHQ/rasa-demo). ```yaml jobs: @@ -63,15 +67,44 @@ jobs: # ... ``` -The GitHub action by default adds a PR commit with summary (the summary comment can be disable by setting the `publish_summary` input argument to `false`): +The GitHub action by default adds a PR comment with summary (the summary comment can be disabled by setting the `publish_summary` input argument to `false`): ![Summary](_img/img_1.png) -## Advanced examples - publish summary as a PR comment +### Use JSON report in GH workflow + +The GH action returns a JSON report as an output. The following example shows how to use the output in a GH workflow. + +```yaml +jobs: + tran_and_test: + # ... + steps: + # ... + - name: Train and Test Rasa Demo + id: action + uses: RasaHQ/rasa-train-test-gha@master + with: + # List of available tags: https://hub.docker.com/r/rasa/rasa/tags + rasa_version: '2.0.0-full' + github_token: ${{ secrets.GITHUB_TOKEN }} + + # We have to convert the output to JSON by using fromJSON built-in function + # more: https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#fromjson + # syntax: fromJSON(steps.action.outputs.report).[] + # example: fromJSON(steps.action.outputs.report).default['config.yml'] + - name: Check output + if: fromJSON(steps.action.outputs.report).default['config.yml'].intent_classification.accuracy >= 0.8 + run: | + echo "I'm doing extra work..." + echo ${{ fromJSON(steps.action.outputs.report).default['config.yml'].intent_classification.accuracy }} +``` + +## Advanced examples ### Compare results with the base report -It possible to compare result to the other report. Difference against the report that we compare to is included in brackets. +It possible to compare results to the other report. The difference against the report that we compare to is included in brackets. ```yaml jobs: @@ -85,6 +118,7 @@ jobs: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' github_token: ${{ secrets.GITHUB_TOKEN }} + # A path to the report that we want to compare to compare_report: 'report_to_compare.json' test_type: 'nlu' # ... @@ -92,75 +126,83 @@ jobs: ![Compare](_img/img_3.png) -### Publish results from multiple jobs as one comment +### Use the existing model -The example shows how to run to tests for two different configurations and publish summary as one comment. +It's possible to use the existing model instead of training a new one. ```yaml jobs: - train_and_test_cfg_1: + test: # ... steps: # ... - - name: Train and Test Rasa Demo - configuration 1 + - name: Download Rasa X model + run: | + wget https://github.com/RasaHQ/rasa-x-demo/blob/0.33.0/models/model.tar.gz?raw=true \ + -O test_model.tar.gz + + - name: Train and Test Rasa Demo uses: RasaHQ/rasa-train-test-gha@master with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' - publish_summary: 'false' - configuration_name: 'Rasa Demo - Configuration 1' - configuration: 'test_config/config_1.yml' - - - uses: actions/upload-artifact@v2 - with: - name: rasa-demo-cfg-1 - path: reports + github_token: ${{ secrets.GITHUB_TOKEN }} + # If a file with the model is provided, training is disabled automatically + model: test_model.tar.gz # ... +``` - train_and_test_cfg_2: +### Cross-validate NLU model + +```yaml +jobs: + tran_and_test: # ... steps: # ... - - name: Train and Test Rasa Demo - configuration 2 + - name: Train and Test Rasa Demo uses: RasaHQ/rasa-train-test-gha@master with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' - publish_summary: 'false' - configuration_name: 'Rasa Demo - Configuration 2' - configuration: test_config/config_2.yml - - - uses: actions/upload-artifact@v2 - with: - name: rasa-demo-cfg-2 - path: reports + github_token: ${{ secrets.GITHUB_TOKEN }} + # Switch on cross validation mode. Any provided model will be ignored + cross_validation: 'true' + # Number of cross validation folds (cross validation only) + # All available arguments: rasa test nlu --help + test_args: '--folds 3' + test_type: 'nlu' # ... +``` - train_and_test_publish_summary: - # ... - needs: - - train_and_test_cfg_1 - - train_and_test_cfg_2 - steps: - - uses: actions/download-artifact@v2 - with: - name: rasa-demo-cfg-1 +In a case where the cross-validation mode is enabled, a summary published as a PR comment includes `Intent Cross-Validation Results` and `Entity Cross-Validation Results`, e.g. - - uses: actions/download-artifact@v2 - with: - name: rasa-demo-cfg-2 +![Intent Cross-Validation Results](_img/img_4.png) + +![Entity Cross-Validation Results](_img/img_5.png) + +### Upload results and reports as artifacts +```yaml +jobs: + tran_and_test: + # ... + steps: # ... - - name: Train and Test Rasa Demo - publish summary + - name: Train and Test Rasa Demo + id: action uses: RasaHQ/rasa-train-test-gha@master with: - data_validate: 'false' - rasa_train: 'false' - rasa_test: 'false' + # List of available tags: https://hub.docker.com/r/rasa/rasa/tags + rasa_version: '2.0.0-full' github_token: ${{ secrets.GITHUB_TOKEN }} - # ... -``` - -Example of summary published as a PR comment: -![Combine results](_img/img_2.png) + # The 'actions/upload-artifact' action to upload files + # More: https://github.com/actions/upload-artifact + - uses: actions/upload-artifact@v2 + with: + name: rasa-demo-cfg + path: | + results + reports +``` diff --git a/_img/img_4.png b/_img/img_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1d55a18f2904ee00ae991dd28ec0904b21ab1773 GIT binary patch literal 176176 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

@G;&$$ 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 z z>&Q`(;rE$0i*+`s(lwd?eKs}Vs*$cH>{*(o9A=@XBPIV>|1S{VP<+8GKHD$>Q5@9HO8=j`3$O(&S z^_$1pXz3^N2_+KiI_t9Nwoai6vm6168WcK_+;Zs>H*< zy+_YD5S=4;&&;%6OO3>28g$Vv)}zFr9leVzcv>%F4*eQ5$N`kbnV#ax11!phX=IZCXi3aKssRB9A>X#&)(!_?j)noYg+38&c>?uZsBsHy6q$8U6l!=>h*q5?&BgVS&B=Eo8dvQMM+_ce|O?2U90 z+jm!%)Iw+p)%)C*mlM(T~N}OF>Xe{R>tOGo0t4B!}O#k%vVh#y+ z<+q@SW$*J>4+tP@e_Z`X2j-}^eZ?=(H&4SJQ;6|v-UkLlPSaV!%Gk24jM-EnI8^rF zr3cpyO`6~al}mBt1Dwd^F^3+Me0vj$#RV!sdgo-C=?fR@XKzpJP5QfakY+*IR_(TB zjmT{?UpuLZ3KkJ_X|{u^LU9Pqc`wKTP8z)wjf@Bk4u3^IlU!FI^YZ7{xGk_F?V|z% zm?oFc7FAKBx4fp!G=1v(^Mf7fBE{rfj0Ad?zzL>mQuAyRK5m!DZiL(R3tzRGOiJL; n;SS%v@gtCXSlA##5%19~g)M^X=f`&+fj@a^6{%_olc4_s5$;Jg literal 0 HcmV?d00001 diff --git a/_img/img_5.png b/_img/img_5.png new file mode 100644 index 0000000000000000000000000000000000000000..cc029ea56cca3ab4871208c5b6ed5a779b769463 GIT binary patch literal 77093 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 U9fY-(JK&GR3z_G|&vd>27hp3xg8%>k literal 0 HcmV?d00001 diff --git a/action.yml b/action.yml index ea35d9f..924c77f 100644 --- a/action.yml +++ b/action.yml @@ -112,7 +112,8 @@ runs: # Set docker args echo DOCKER_ARGS="--rm --tmpfs /.config -e MPLCONFIGDIR=/tmp/.mplconfigdir \ - -e CI=${CI} -v ${{ github.workspace }}:/app/github_workspace -v ${{ inputs.workspace }}:/app -v ${{ inputs.workspace }}/models:/app/models \ + -e CI=${CI} -e RASA_TELEMETRY_ENABLED=${{ env.RASA_TELEMETRY_ENABLED }} -v ${{ github.workspace }}:/app/github_workspace \ + -v ${{ inputs.workspace }}:/app -v ${{ inputs.workspace }}/models:/app/models \ -v ${{ inputs.workspace }}/results:/app/results" >> $GITHUB_ENV # Set environment variables for generating a report @@ -161,7 +162,7 @@ runs: echo docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} data validate else - echo "::warning::Data validation is disabled. In order to turn on data validation set the data_validate parameter to 'true'." + echo "::warning::Data validation is disabled. To turn on data validation set the data_validate parameter to 'true'." fi - name: Run the rasa train command @@ -176,7 +177,7 @@ runs: echo "" docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} train ${{ env.TEST_TYPE }} ${{ env.DEFAULT_ARGS }} ${{ inputs.train_args }} else - echo "::warning::The rasa train is disabled. In order to turn on the rasa train set the rasa_train parameter to 'true'." + echo "::warning::The rasa train is disabled. To turn on the rasa train set the rasa_train parameter to 'true'." fi - name: Run the test command @@ -187,7 +188,7 @@ runs: echo "" docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} test ${{ env.TEST_TYPE }} ${{ env.MODEL_ARGS }} ${{ env.CROSS_VALIDATION_ARGS }} ${{ env.DEFAULT_ARGS }} ${{ inputs.test_args }} else - echo "::warning::The rasa train is disabled. In order to turn on the rasa train set the rasa_train parameter to 'true'." + echo "::warning::The rasa train is disabled. To turn on the rasa train set the rasa_train parameter to 'true'." fi - name: Generate a report @@ -197,7 +198,7 @@ runs: mkdir -p ${{ inputs.workspace }}/reports python3 ${{ github.action_path }}/scripts/generate_results_report.py - # Copy a report from the current one if the report to compare wasn't provided + # Copy a report from the current one if the report to compare to wasn't provided cp ${{ inputs.workspace }}/reports/report.json ${{ inputs.workspace }}/reports/report_master.json if [[ -n "${{ inputs.compare_report }}" && -e "${{ inputs.compare_report }}" ]]; then @@ -238,11 +239,11 @@ runs: elif [[ "${{ github.event_name }}" != "pull_request" ]]; then echo - echo "::warning::Publishing summary as a comment in a PR is available only for a pull request." + echo "::warning::Publish Summary as a PR comment is available only for a pull request." echo else echo - echo "Publishing summary as a comment in a PR is disabled. In order to enabled it set the 'publish_summary' input parameter to 'true'." + echo "Publish Summary as a PR comment is disabled. To enabled it set the 'publish_summary' input parameter to 'true'." echo fi diff --git a/examples/report/report.csv b/examples/report/report.csv new file mode 100644 index 0000000..1b444f0 --- /dev/null +++ b/examples/report/report.csv @@ -0,0 +1,5 @@ +name,macro_avg__f1-score,macro_avg__precision,macro_avg__recall,macro_avg__support,micro_avg__f1-score,micro_avg__precision,micro_avg__recall,micro_avg__support,weighted_avg__f1-score,weighted_avg__precision,weighted_avg__recall,weighted_avg__support,accuracy +default/Rasa Demo - Configuration 1/entity_prediction,0.8439612155511906,0.8928145686878677,0.8505867162712345,1451,0.8802499132245749,0.8867132867132868,0.8738800827015851,1451,0.8795120459917696,0.8962881808799879,0.8738800827015851,1451,n/a +default/Rasa Demo - Configuration 1/intent_classification,0.39396343663157196,0.6152770784589695,0.3412664077499422,4950,0.8144018583042975,0.9579234972677596,0.7082828282828283,4950,0.7571805042281962,0.89504509788388,0.7082828282828283,4950,n/a +default/Rasa Demo - Configuration 1/response_selection,0.6128055852643406,0.6404843224661372,0.6527552082927716,1981,n/a,n/a,n/a,n/a,0.77835090522873,0.7812937731413816,0.8278647147905098,1981,0.8278647147905098 +default/Rasa Demo - Configuration 1/story_prediction,0.820486111111111,0.822530864197531,0.8363095238095238,189,n/a,n/a,n/a,n/a,0.915299823633157,0.9200470311581422,0.9206349206349206,189,0.9206349206349206 diff --git a/examples/report/report.json b/examples/report/report.json new file mode 100644 index 0000000..caf08fe --- /dev/null +++ b/examples/report/report.json @@ -0,0 +1,76 @@ +{ + "default": { + "Rasa Demo - Configuration 1": { + "entity_prediction": { + "macro_avg": { + "f1-score": 0.8439612155511906, + "precision": 0.8928145686878677, + "recall": 0.8505867162712345, + "support": 1451 + }, + "micro_avg": { + "f1-score": 0.8802499132245749, + "precision": 0.8867132867132868, + "recall": 0.8738800827015851, + "support": 1451 + }, + "weighted_avg": { + "f1-score": 0.8795120459917696, + "precision": 0.8962881808799879, + "recall": 0.8738800827015851, + "support": 1451 + } + }, + "intent_classification": { + "macro_avg": { + "f1-score": 0.39396343663157196, + "precision": 0.6152770784589695, + "recall": 0.3412664077499422, + "support": 4950 + }, + "micro_avg": { + "f1-score": 0.8144018583042975, + "precision": 0.9579234972677596, + "recall": 0.7082828282828283, + "support": 4950 + }, + "weighted_avg": { + "f1-score": 0.7571805042281962, + "precision": 0.89504509788388, + "recall": 0.7082828282828283, + "support": 4950 + } + }, + "response_selection": { + "accuracy": 0.8278647147905098, + "macro_avg": { + "f1-score": 0.6128055852643406, + "precision": 0.6404843224661372, + "recall": 0.6527552082927716, + "support": 1981 + }, + "weighted_avg": { + "f1-score": 0.77835090522873, + "precision": 0.7812937731413816, + "recall": 0.8278647147905098, + "support": 1981 + } + }, + "story_prediction": { + "accuracy": 0.9206349206349206, + "macro_avg": { + "f1-score": 0.820486111111111, + "precision": 0.822530864197531, + "recall": 0.8363095238095238, + "support": 189 + }, + "weighted_avg": { + "f1-score": 0.915299823633157, + "precision": 0.9200470311581422, + "recall": 0.9206349206349206, + "support": 189 + } + } + } + } +} \ No newline at end of file diff --git a/scripts/generate_results_report.py b/scripts/generate_results_report.py index f9b3e89..79d3bc7 100644 --- a/scripts/generate_results_report.py +++ b/scripts/generate_results_report.py @@ -1,5 +1,4 @@ -# Collect the results of the various model test runs which are done as part of -# The model regression CI pipeline and dump them as a single file artifact.This artifact will the then be published at the end of the tests. +# Collect the results of the various model test runs import json import os From 4986474140e77f0314738fd3f793ee06ebb61398 Mon Sep 17 00:00:00 2001 From: Tomasz Czekajlo Date: Thu, 10 Dec 2020 16:52:26 +0100 Subject: [PATCH 04/22] Apply suggestions from code review Co-authored-by: Tobias Wochinger --- .github/test_files/config_rasa_demo.yml | 1 - .github/workflows/ci.yml | 3 +-- .github/workflows/ci_summary.yml | 1 - README.md | 4 ++-- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/test_files/config_rasa_demo.yml b/.github/test_files/config_rasa_demo.yml index 45900e4..09f976d 100644 --- a/.github/test_files/config_rasa_demo.yml +++ b/.github/test_files/config_rasa_demo.yml @@ -1,4 +1,3 @@ - language: en pipeline: - name: WhitespaceTokenizer diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 711c109..9f161c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,3 @@ - name: Continuous Integration on: push: @@ -83,7 +82,7 @@ jobs: workspace: ${{ github.workspace }}/rasa-demo test_type: nlu github_token: ${{ secrets.GITHUB_TOKEN }} - test_args: '-f 3' + test_args: '-f 2' # Use cross validation cross_validation: 'true' # Compare results to the test report diff --git a/.github/workflows/ci_summary.yml b/.github/workflows/ci_summary.yml index b61fc71..a773111 100644 --- a/.github/workflows/ci_summary.yml +++ b/.github/workflows/ci_summary.yml @@ -1,4 +1,3 @@ - name: Continuous Integration - Test summary on: push: diff --git a/README.md b/README.md index fdc8983..1e4935b 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ The GitHub action to run easily `rasa train` and `rasa test` in the CIs. -## Input arguments +## Input Arguments -In order to pass the input parameters to the GH action, you have to use the [`with`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepswith) argument in a step that uses the GH action, e.g. +In order to pass the input parameters to the GH action, you have to use the [`with`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepswith) argument in a step that uses the GH action, e.g.: ```yaml jobs: From b78046773f7285cb684c56f3b5ccb4823d54af5f Mon Sep 17 00:00:00 2001 From: Tomasz Czekajlo Date: Thu, 10 Dec 2020 16:54:24 +0100 Subject: [PATCH 05/22] Apply suggestions from code review Co-authored-by: Tobias Wochinger --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1e4935b..2224d7f 100644 --- a/README.md +++ b/README.md @@ -20,13 +20,13 @@ jobs: | -------------------- | ----------------------------------------------------------------------------- | ------------------------- | | `rasa_version` | The Rasa version used to run test and train | `latest-full` | | `rasa_image` | Custom Docker image | `none` | -| `rasa_train` | Run the rasa train | `true` | -| `rasa_test` | Run the rasa test | `true` | +| `rasa_train` | Run `rasa train` | `true` | +| `rasa_test` | Run `rasa test` | `true` | | `data_validate` | Validates domain and data files to check for possible mistakes | `true` | -| `workspace` | The root directory | `${{ github.workspace }}` | -| `train_args` | Additional arguments passed to the rasa train command | `none` | -| `test_args` | Additional arguments passed to the rasa test command | `none` | -| `test_type` | The types of tests to run (available types: core/nlu/all) | `all` | +| `workspace` | The root directory containing your Rasa Open Source project | `${{ github.workspace }}` | +| `train_args` | Additional arguments passed to the `rasa train` command | `none` | +| `test_args` | Additional arguments passed to the `rasa test` command | `none` | +| `test_type` | The types of tests to run (available types: `core`/`nlu`/`all`) | `all` | | `publish_summary` | Publish tests summary as a PR comment | `true` | | `github_token` | GitHub Token - required to add a comment with summary | `none` | | `configuration` | Model configuration file | `config.yml` | From 4830d14e0ff379825c7b95b5848bea3b51e765f6 Mon Sep 17 00:00:00 2001 From: Tomasz Czekajlo Date: Thu, 10 Dec 2020 16:55:33 +0100 Subject: [PATCH 06/22] Apply suggestions from code review Co-authored-by: Tobias Wochinger --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2224d7f..2d25161 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ jobs: | Input | Description | Default | | -------------------- | ----------------------------------------------------------------------------- | ------------------------- | -| `rasa_version` | The Rasa version used to run test and train | `latest-full` | +| `rasa_version` | The Rasa Open Source version used to run test and train | `latest-full` | | `rasa_image` | Custom Docker image | `none` | | `rasa_train` | Run `rasa train` | `true` | | `rasa_test` | Run `rasa test` | `true` | From b0d7de8ba5f42e4fe37814229f2f972ab5b324b7 Mon Sep 17 00:00:00 2001 From: Tomasz Czekajlo Date: Thu, 10 Dec 2020 16:57:11 +0100 Subject: [PATCH 07/22] Apply suggestions from code review Co-authored-by: Tobias Wochinger --- README.md | 2 +- action.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2d25161..b8683b0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ jobs: | Input | Description | Default | | -------------------- | ----------------------------------------------------------------------------- | ------------------------- | | `rasa_version` | The Rasa Open Source version used to run test and train | `latest-full` | -| `rasa_image` | Custom Docker image | `none` | +| `rasa_image` | Custom Rasa Docker image. Useful if you use Rasa with custom Python modules. | `none` | | `rasa_train` | Run `rasa train` | `true` | | `rasa_test` | Run `rasa test` | `true` | | `data_validate` | Validates domain and data files to check for possible mistakes | `true` | diff --git a/action.yml b/action.yml index 924c77f..14a5a12 100644 --- a/action.yml +++ b/action.yml @@ -10,11 +10,11 @@ inputs: required: false default: '' rasa_train: - description: 'Run the rasa train' + description: 'Run rasa train' required: true default: 'true' rasa_test: - description: 'Run the rasa test' + description: 'Run rasa test' required: true default: 'true' data_validate: @@ -177,7 +177,7 @@ runs: echo "" docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} train ${{ env.TEST_TYPE }} ${{ env.DEFAULT_ARGS }} ${{ inputs.train_args }} else - echo "::warning::The rasa train is disabled. To turn on the rasa train set the rasa_train parameter to 'true'." + echo "::warning::rasa train is disabled. To turn on the rasa train set the rasa_train parameter to 'true'." fi - name: Run the test command From 8513b6c50e4d1d7061b28cd23225ad286d3b12c8 Mon Sep 17 00:00:00 2001 From: Tomasz Czekajlo Date: Thu, 10 Dec 2020 16:58:00 +0100 Subject: [PATCH 08/22] Apply suggestions from code review Co-authored-by: Tobias Wochinger --- action.yml | 2 +- examples/report/report.json | 2 +- scripts/cross_validation_results.py | 8 +++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/action.yml b/action.yml index 14a5a12..60f07ad 100644 --- a/action.yml +++ b/action.yml @@ -188,7 +188,7 @@ runs: echo "" docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} test ${{ env.TEST_TYPE }} ${{ env.MODEL_ARGS }} ${{ env.CROSS_VALIDATION_ARGS }} ${{ env.DEFAULT_ARGS }} ${{ inputs.test_args }} else - echo "::warning::The rasa train is disabled. To turn on the rasa train set the rasa_train parameter to 'true'." + echo "::warning::rasa test is disabled. To turn on the rasa train set the rasa_test parameter to 'true'." fi - name: Generate a report diff --git a/examples/report/report.json b/examples/report/report.json index caf08fe..56a9f2f 100644 --- a/examples/report/report.json +++ b/examples/report/report.json @@ -73,4 +73,4 @@ } } } -} \ No newline at end of file +} diff --git a/scripts/cross_validation_results.py b/scripts/cross_validation_results.py index 2e9ec1b..fd95eaa 100644 --- a/scripts/cross_validation_results.py +++ b/scripts/cross_validation_results.py @@ -14,12 +14,10 @@ def intent_table(): cols = ["support", "f1-score", "confused_with"] writer.headers = ["class"] + cols + data.pop("accuracy", None) classes = list(data.keys()) - try: - classes.remove("accuracy") - except: - pass - classes.sort(key=lambda x: data[x]["support"], reverse=True) + + classes.sort(key=lambda x: data[x].get("support", 0), reverse=True) def format_cell(data, c, k): if not data[c].get(k): From ad9c35eda26462764aa0c4c9a7b0b41b428c8419 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Thu, 10 Dec 2020 17:31:00 +0100 Subject: [PATCH 09/22] Add changes based on code review --- README.md | 35 +++++++++++++++++++++++++++-------- action.yml | 48 ++++++++++++++++++++++++++++-------------------- 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index b8683b0..e3b7495 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,11 @@ In order to pass the input parameters to the GH action, you have to use the [`wi jobs: my_first_job: steps: + # Checks-out GitHub repository + # more: https://github.com/actions/checkout + - uses: actions/checkout@v2 + + # Run rasa train and rasa test - name: My first step uses: RasaHQ/rasa-train-test-gha@master with: @@ -18,15 +23,15 @@ jobs: | Input | Description | Default | | -------------------- | ----------------------------------------------------------------------------- | ------------------------- | -| `rasa_version` | The Rasa Open Source version used to run test and train | `latest-full` | -| `rasa_image` | Custom Rasa Docker image. Useful if you use Rasa with custom Python modules. | `none` | -| `rasa_train` | Run `rasa train` | `true` | -| `rasa_test` | Run `rasa test` | `true` | +| `rasa_version` | The Rasa Open Source version used to run test and train | `latest-full` | +| `rasa_image` | Custom Rasa Docker image. Useful if you use Rasa with custom Python modules. | `none` | +| `rasa_train` | Run `rasa train` | `true` | +| `rasa_test` | Run `rasa test` | `true` | | `data_validate` | Validates domain and data files to check for possible mistakes | `true` | -| `workspace` | The root directory containing your Rasa Open Source project | `${{ github.workspace }}` | -| `train_args` | Additional arguments passed to the `rasa train` command | `none` | -| `test_args` | Additional arguments passed to the `rasa test` command | `none` | -| `test_type` | The types of tests to run (available types: `core`/`nlu`/`all`) | `all` | +| `workspace` | The root directory containing your Rasa Open Source project | `${{ github.workspace }}` | +| `train_args` | Additional arguments passed to the `rasa train` command | `none` | +| `test_args` | Additional arguments passed to the `rasa test` command | `none` | +| `test_type` | The types of tests to run (available types: `core`/`nlu`/`all`) | `all` | | `publish_summary` | Publish tests summary as a PR comment | `true` | | `github_token` | GitHub Token - required to add a comment with summary | `none` | | `configuration` | Model configuration file | `config.yml` | @@ -35,6 +40,8 @@ jobs: | `configuration_name` | Configuration name used in summary. If not provided a file name is used | `none` | | `data_name` | Data name used in summary. If not provided a directory name is used | `default` | | `compare_report` | Path to a report that will be used to compare results | `none` | +| `result_directory` | Directory name where results are stored in | `results` | +| `report_directory` | Directory name where reports are stored in | `reports` | ## Outputs @@ -63,6 +70,8 @@ jobs: with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' + # In order to add a PR comment with summary + # a GH Token has to be pass to the GH action github_token: ${{ secrets.GITHUB_TOKEN }} # ... ``` @@ -87,6 +96,8 @@ jobs: with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' + # In order to add a PR comment with summary + # a GH Token has to be pass to the GH action github_token: ${{ secrets.GITHUB_TOKEN }} # We have to convert the output to JSON by using fromJSON built-in function @@ -117,6 +128,8 @@ jobs: with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' + # In order to add a PR comment with summary + # a GH Token has to be pass to the GH action github_token: ${{ secrets.GITHUB_TOKEN }} # A path to the report that we want to compare to compare_report: 'report_to_compare.json' @@ -146,6 +159,8 @@ jobs: with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' + # In order to add a PR comment with summary + # a GH Token has to be pass to the GH action github_token: ${{ secrets.GITHUB_TOKEN }} # If a file with the model is provided, training is disabled automatically model: test_model.tar.gz @@ -165,6 +180,8 @@ jobs: with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' + # In order to add a PR comment with summary + # a GH Token has to be pass to the GH action github_token: ${{ secrets.GITHUB_TOKEN }} # Switch on cross validation mode. Any provided model will be ignored cross_validation: 'true' @@ -195,6 +212,8 @@ jobs: with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' + # In order to add a PR comment with summary + # a GH Token has to be pass to the GH action github_token: ${{ secrets.GITHUB_TOKEN }} # The 'actions/upload-artifact' action to upload files diff --git a/action.yml b/action.yml index 60f07ad..d858c06 100644 --- a/action.yml +++ b/action.yml @@ -69,6 +69,14 @@ inputs: description: 'Path to a report that will be used to compare results' required: false default: '' + result_directory: + description: 'Directory name where results are stored in' + required: false + default: 'results' + report_directory: + description: 'Directory name where reports are stored in' + required: false + default: 'reports' outputs: report: description: "Return report as JSON" @@ -81,8 +89,8 @@ runs: run: |- mkdir -p ${{ inputs.workspace }}/models chmod 777 ${{ inputs.workspace }}/models - mkdir -p ${{ inputs.workspace }}/results - chmod 777 ${{ inputs.workspace }}/results + mkdir -p ${{ inputs.workspace }}/${{ inputs.result_directory }} + chmod 777 ${{ inputs.workspace }}/${{ inputs.result_directory }} case "${{ inputs.test_type }}" in all) @@ -114,7 +122,7 @@ runs: echo DOCKER_ARGS="--rm --tmpfs /.config -e MPLCONFIGDIR=/tmp/.mplconfigdir \ -e CI=${CI} -e RASA_TELEMETRY_ENABLED=${{ env.RASA_TELEMETRY_ENABLED }} -v ${{ github.workspace }}:/app/github_workspace \ -v ${{ inputs.workspace }}:/app -v ${{ inputs.workspace }}/models:/app/models \ - -v ${{ inputs.workspace }}/results:/app/results" >> $GITHUB_ENV + -v ${{ inputs.workspace }}/${{ inputs.result_directory }}:/app/results" >> $GITHUB_ENV # Set environment variables for generating a report echo "SUMMARY_FILE=${{ inputs.workspace }}/reports/report.json" >> $GITHUB_ENV @@ -126,11 +134,18 @@ runs: fi echo "DATASET_NAME=${{ inputs.data_name }}" >> $GITHUB_ENV - echo "RESULT_DIR=${{ inputs.workspace }}/results" >> $GITHUB_ENV + echo "RESULT_DIR=${{ inputs.workspace }}/${{ inputs.result_directory }}" >> $GITHUB_ENV - - name: Set the Rasa version + - name: Set the Rasa version and image shell: bash run: | + # Set custom rasa image + if [[ -n "${{ inputs.rasa_image }}" ]]; then + echo "RASA_IMAGE=${{ inputs.rasa_image }}" >> $GITHUB_ENV + # Don't continue if a custom rasa image was used + exit 0 + fi + DOCKERHUB_TAGS_URL="https://registry.hub.docker.com/v2/repositories/rasa/rasa/tags?page_size=10000" # Get the latest version if [[ "${{ inputs.rasa_version }}" == "latest-full" ]]; then @@ -145,14 +160,7 @@ runs: echo "RASA_VERSION=${{ inputs.rasa_version }}" >> $GITHUB_ENV fi - - name: Set the Rasa image - shell: bash - run: | - if [[ -z "${{ inputs.rasa_image }}" ]]; then - echo "RASA_IMAGE=rasa/rasa:${{ env.RASA_VERSION }}" >> $GITHUB_ENV - else - echo "RASA_IMAGE=${{ inputs.rasa_image }}" >> $GITHUB_ENV - fi + echo "RASA_IMAGE=rasa/rasa:${{ env.RASA_VERSION }}" >> $GITHUB_ENV - name: Data Validation shell: bash @@ -195,24 +203,24 @@ runs: id: report_output shell: bash run: | - mkdir -p ${{ inputs.workspace }}/reports + mkdir -p ${{ inputs.workspace }}/${{ inputs.report_directory }} python3 ${{ github.action_path }}/scripts/generate_results_report.py # Copy a report from the current one if the report to compare to wasn't provided - cp ${{ inputs.workspace }}/reports/report.json ${{ inputs.workspace }}/reports/report_master.json + cp ${{ inputs.workspace }}/${{ inputs.report_directory }}/report.json ${{ inputs.workspace }}/${{ inputs.report_directory }}/report_master.json if [[ -n "${{ inputs.compare_report }}" && -e "${{ inputs.compare_report }}" ]]; then - cp ${{ inputs.compare_report }} ${{ inputs.workspace }}/reports/report_master.json + cp ${{ inputs.compare_report }} ${{ inputs.workspace }}/${{ inputs.report_directory }}/report_master.json elif [[ -n "${{ inputs.compare_report }}" && ! -e "${{ inputs.compare_report }}" ]]; then echo "::warning::The report ${{ inputs.compare_report }} to compare doesn't exist." fi echo "::set-output name=report::$(docker run --rm -v ${{ github.action_path }}/templates:/templates \ - -v ${{ inputs.workspace }}/reports/report.json:/report.json hairyhenderson/gomplate -d report=/report.json \ + -v ${{ inputs.workspace }}/${{ inputs.report_directory }}/report.json:/report.json hairyhenderson/gomplate -d report=/report.json \ -f /templates/report_to_json.tmpl)" # Convert JSON to CSV - python3 ${{ github.action_path }}/scripts/json_to_csv.py ${{ inputs.workspace }}/reports/report.json ${{ inputs.workspace }}/reports/report.csv + python3 ${{ github.action_path }}/scripts/json_to_csv.py ${{ inputs.workspace }}/${{ inputs.report_directory }}/report.json ${{ inputs.workspace }}/${{ inputs.report_directory }}/report.csv - name: Publish summary as a comment in a PR shell: bash @@ -222,7 +230,7 @@ runs: elif [[ "${{ inputs.publish_summary }}" == "true" && "${{ github.event_name }}" == "pull_request" ]]; then docker run --rm \ -v ${{ github.action_path }}/templates:/templates \ - -v ${{ inputs.workspace }}/reports:/reports hairyhenderson/gomplate -d data=/reports/report.json -d results_master=/reports/report_master.json \ + -v ${{ inputs.workspace }}/${{ inputs.report_directory }}:/reports hairyhenderson/gomplate -d data=/reports/report.json -d results_master=/reports/report_master.json \ -f /templates/comment_summary.tmpl > comment_summary.md OUTPUT=$(cat comment_summary.md) @@ -250,4 +258,4 @@ runs: - name: Clean shell: bash run: | - rm -rf ${{ inputs.workspace }}/reports/report_master.json + rm -rf ${{ inputs.workspace }}/${{ inputs.report_directory }}/report_master.json From 67294a9091ac015b3280d7048bfbdb7cf2a5b7ed Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Thu, 10 Dec 2020 17:34:42 +0100 Subject: [PATCH 10/22] Debug --- action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/action.yml b/action.yml index d858c06..e3a63b2 100644 --- a/action.yml +++ b/action.yml @@ -168,6 +168,7 @@ runs: if [[ "${{ inputs.data_validate }}" == "true" ]]; then echo "Run data validation" echo + echo docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} data validate docker run ${{ env.DOCKER_ARGS }} ${{ env.RASA_IMAGE }} data validate else echo "::warning::Data validation is disabled. To turn on data validation set the data_validate parameter to 'true'." From 425fa69fb66c174aa8660d0b964e4d279b33ff33 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Thu, 10 Dec 2020 17:38:40 +0100 Subject: [PATCH 11/22] Pass RASA_VERSION as env variable --- action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/action.yml b/action.yml index e3a63b2..3913e06 100644 --- a/action.yml +++ b/action.yml @@ -150,17 +150,17 @@ runs: # Get the latest version if [[ "${{ inputs.rasa_version }}" == "latest-full" ]]; then LATEST_RASA_VERSION=$(curl -s ${DOCKERHUB_TAGS_URL} | jq -r '.results[].name' | grep -E 'full' | grep -vE 'latest' | sort -Vr | head -n1) - echo "RASA_VERSION=${LATEST_RASA_VERSION}" >> $GITHUB_ENV + RASA_VERSION=${LATEST_RASA_VERSION} else # Validate Rasa version CHECK_VERSION=$(curl --silent ${DOCKERHUB_TAGS_URL} | jq -r '.results[] | select(.name=="${{ inputs.rasa_version }}") | .name') if [[ "$CHECK_VERSION" != "${{ inputs.rasa_version }}" ]]; then echo "::error::Rasa in ${{ inputs.rasa_version }} version doesn't exist. Check if the given Rasa version is valid, https://hub.docker.com/r/rasa/rasa/tags" && exit 1 fi - echo "RASA_VERSION=${{ inputs.rasa_version }}" >> $GITHUB_ENV + RASA_VERSION=${{ inputs.rasa_version }} fi - echo "RASA_IMAGE=rasa/rasa:${{ env.RASA_VERSION }}" >> $GITHUB_ENV + echo "RASA_IMAGE=rasa/rasa:${RASA_VERSION}" >> $GITHUB_ENV - name: Data Validation shell: bash From 7a2627b3c5466958a560051d89b53986a4dd04ac Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Thu, 10 Dec 2020 18:09:00 +0100 Subject: [PATCH 12/22] Fix the test report --- .github/test_files/report_to_compare.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/test_files/report_to_compare.json b/.github/test_files/report_to_compare.json index 2fbe9a4..2120e73 100644 --- a/.github/test_files/report_to_compare.json +++ b/.github/test_files/report_to_compare.json @@ -1,6 +1,6 @@ { "default": { - "config.yml": { + "Rasa Demo - NLU": { "entity_prediction": { "macro_avg": { "f1-score": 0.2378897757789324, From ace95a096d31e18cab51fd2e76f64d05e04b3201 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Thu, 10 Dec 2020 18:10:49 +0100 Subject: [PATCH 13/22] Pass Rasa X Demo version as a env variable --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f161c3..0dac79a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,9 @@ on: - '*' pull_request: +env: + RASA_X_DEMO_VERSION: '0.33.0' + jobs: # Test the GH action on Rasa X Demo data # https://github.com/RasaHQ/rasa-x-demo @@ -22,7 +25,7 @@ jobs: with: repository: RasaHQ/rasa-x-demo path: rasa-x-demo - ref: '0.33.0' + ref: ${{ env.RASA_X_DEMO_VERSION }} - name: Download Rasa X model run: | From d88dda0f8f23c6e3b2ee692d68072674be7da661 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Thu, 10 Dec 2020 18:15:30 +0100 Subject: [PATCH 14/22] Add more descriptions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3b7495..710aaef 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ jobs: ### Compare results with the base report -It possible to compare results to the other report. The difference against the report that we compare to is included in brackets. +It possible to compare results to the other report, the feature is useful for example to see that a model is better than before changes. The difference against the report that we compare to is included in brackets. ```yaml jobs: From 4752c23845ada720f7f7fa71a70f369832702f09 Mon Sep 17 00:00:00 2001 From: Tomasz Czekajlo Date: Fri, 11 Dec 2020 10:10:22 +0100 Subject: [PATCH 15/22] Apply suggestions from code review Co-authored-by: Ben Quachtran <65514514+b-quachtran@users.noreply.github.com> --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 710aaef..384b18c 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ In the example below, we are using [the Rasa Demo data](https://github.com/RasaH ```yaml jobs: - tran_and_test: + train_and_test: # ... steps: # ... @@ -86,7 +86,7 @@ The GH action returns a JSON report as an output. The following example shows ho ```yaml jobs: - tran_and_test: + train_and_test: # ... steps: # ... @@ -119,7 +119,7 @@ It possible to compare results to the other report, the feature is useful for ex ```yaml jobs: - tran_and_test: + train_and_test: # ... steps: # ... @@ -171,7 +171,7 @@ jobs: ```yaml jobs: - tran_and_test: + train_and_test: # ... steps: # ... @@ -202,7 +202,7 @@ In a case where the cross-validation mode is enabled, a summary published as a P ```yaml jobs: - tran_and_test: + train_and_test: # ... steps: # ... From 2d5e5b76b22439e39355d9eeb17663279bc1d506 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Fri, 11 Dec 2020 10:27:42 +0100 Subject: [PATCH 16/22] Use 'rasa init' in the CI --- .github/workflows/ci.yml | 40 ++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ scripts/json_to_csv.py | 5 +++-- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0dac79a..b878c34 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,8 +9,48 @@ on: env: RASA_X_DEMO_VERSION: '0.33.0' + RASA_IMAGE_TAG: '2.1.3-full' jobs: + test_action_init: + runs-on: ubuntu-latest + name: Test GH action - rasa init + + steps: + - uses: actions/checkout@v2 + + - name: Create a new project + run: | + mkdir rasa-project + chmod 777 rasa-project + docker run --rm -v ${{ github.workspace }}/rasa-project:/rasa-project rasa/rasa:${{ env.RASA_IMAGE_TAG }} init --no-prompt --init-dir /rasa-project + + - name: Download Rasa X model + run: | + wget https://github.com/RasaHQ/rasa-x-demo/blob/0.33.0/models/model.tar.gz?raw=true \ + -O test_model.tar.gz + + - id: action + name: Rasa Test & Train - rasa init + uses: ./ + with: + rasa_version: ${{ env.RASA_IMAGE_TAG }} + workspace: ${{ github.workspace }}/rasa-project + test_type: all + github_token: ${{ secrets.GITHUB_TOKEN }} + configuration_name: 'rasa-init' + publish_summary: 'false' + + - name: Checkout output + run: | + echo ${{ fromJSON(steps.action.outputs.report).default['rasa-init'].intent_classification.accuracy }} + + - name: Checkout output - if + if: fromJSON(steps.action.outputs.report).default['rasa-init'].intent_classification.accuracy <= 0.5 + run: | + echo "::error::${{ fromJSON(steps.action.outputs.report).default['rasa-init'].intent_classification.accuracy }}" + exit 1 + # Test the GH action on Rasa X Demo data # https://github.com/RasaHQ/rasa-x-demo test_action_x: diff --git a/README.md b/README.md index 384b18c..bc34d30 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ In order to pass the input parameters to the GH action, you have to use the [`wi ```yaml jobs: my_first_job: + name: My first job + runs-on: ubuntu-latest steps: # Checks-out GitHub repository # more: https://github.com/actions/checkout diff --git a/scripts/json_to_csv.py b/scripts/json_to_csv.py index 5f34af0..d5ed386 100644 --- a/scripts/json_to_csv.py +++ b/scripts/json_to_csv.py @@ -1,4 +1,5 @@ import csv, json, sys +from pathlib import Path def flattenjson(b, delim): val = {} @@ -22,9 +23,9 @@ def flattenjson(b, delim): if sys.argv[1] is not None and sys.argv[2] is not None: fileInput = sys.argv[1] fileOutput = sys.argv[2] - inputFile = open(fileInput) + inputFile = Path(fileInput) - dataJSON = json.load(inputFile) + dataJSON = json.load(inputFile.read_text()) data = flattenjson(dataJSON, "__") inputFile.close() From 3cd807e75ffabd3a6c74e3fe97dd14b165fdf1c9 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Fri, 11 Dec 2020 10:37:04 +0100 Subject: [PATCH 17/22] Use pathlib for the json_to_csv.py --- scripts/json_to_csv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/json_to_csv.py b/scripts/json_to_csv.py index d5ed386..98752cb 100644 --- a/scripts/json_to_csv.py +++ b/scripts/json_to_csv.py @@ -25,7 +25,7 @@ def flattenjson(b, delim): fileOutput = sys.argv[2] inputFile = Path(fileInput) - dataJSON = json.load(inputFile.read_text()) + dataJSON = json.loads(inputFile.read_text()) data = flattenjson(dataJSON, "__") inputFile.close() From 067f5cc1970a5b788ba8af6deac0594234d9555b Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Fri, 11 Dec 2020 10:40:27 +0100 Subject: [PATCH 18/22] Remove useless function from the json_to_csv.py --- scripts/json_to_csv.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/json_to_csv.py b/scripts/json_to_csv.py index 98752cb..e0fdedd 100644 --- a/scripts/json_to_csv.py +++ b/scripts/json_to_csv.py @@ -27,7 +27,6 @@ def flattenjson(b, delim): dataJSON = json.loads(inputFile.read_text()) data = flattenjson(dataJSON, "__") - inputFile.close() with open(fileOutput, "w") as file: csv_file = csv.writer(file) From c1bc49aaa43ed60d19c21fbc35bf08712bef0e79 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Mon, 14 Dec 2020 13:35:59 +0100 Subject: [PATCH 19/22] Add a release workflow --- .github/workflows/release.yml | 41 +++++++++++++++++++++++++++++++++++ package.json.tmp | 3 +++ 2 files changed, 44 insertions(+) create mode 100644 .github/workflows/release.yml create mode 100644 package.json.tmp diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..7140dbb --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,41 @@ +name: Release +on: + push: + tags: + - '*' + +jobs: + release: + name: Create Release + runs-on: ubuntu-latest + if: startsWith(github.event.ref, 'refs/tags') + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Get release version + id: release_version + run: | + sed -e 's/_version_/'${GITHUB_REF#refs/tags/}'/g' package.json.tmp > package.json + echo "::set-output name=version::${GITHUB_REF#refs/tags/}" + + - name: Changelog + uses: scottbrenner/generate-changelog-action@1.0.1 + id: changelog + env: + REPO: ${{ github.repository }} + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.release_version.outputs.version }} + release_name: ${{ steps.release_version.outputs.version }} + body: | + ${{ steps.changelog.outputs.changelog }} + draft: false + prerelease: false diff --git a/package.json.tmp b/package.json.tmp new file mode 100644 index 0000000..ac7f9da --- /dev/null +++ b/package.json.tmp @@ -0,0 +1,3 @@ +{ + "version": "_version_" +} From ca2d62c1db35a0b3e53c12235f8bcd95b882ec0d Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Mon, 14 Dec 2020 13:46:11 +0100 Subject: [PATCH 20/22] Add branding --- action.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/action.yml b/action.yml index 3913e06..f530ff0 100644 --- a/action.yml +++ b/action.yml @@ -81,6 +81,11 @@ outputs: report: description: "Return report as JSON" value: ${{ steps.report_output.outputs.report }} + +branding: + icon: 'layers' + color: 'green' + runs: using: "composite" steps: From cb2b9cdc455e660f1fc589d1d87350cbd5fc4686 Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Mon, 14 Dec 2020 17:12:57 +0100 Subject: [PATCH 21/22] Change the GH name --- README.md | 2 +- action.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bc34d30..dee56ed 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Rasa Train and Test GitHub Action +# Rasa Train-Test Model GitHub Action The GitHub action to run easily `rasa train` and `rasa test` in the CIs. diff --git a/action.yml b/action.yml index f530ff0..3484f93 100644 --- a/action.yml +++ b/action.yml @@ -1,4 +1,4 @@ -name: 'Rasa Test & Train' +name: 'Rasa Train-Test Model GitHub Action' description: 'The GitHub action to run the rasa train and rasa test commands' inputs: rasa_version: From 84dfe8c4ebdb76d5ab6fad8607967f8d76a1cb2a Mon Sep 17 00:00:00 2001 From: tczekajlo Date: Tue, 15 Dec 2020 09:42:12 +0100 Subject: [PATCH 22/22] Change master to main branch --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index dee56ed..7fcaf39 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ jobs: # Run rasa train and rasa test - name: My first step - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: test_type: nlu ``` @@ -68,7 +68,7 @@ jobs: steps: # ... - name: Train and Test Rasa Demo - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' @@ -94,7 +94,7 @@ jobs: # ... - name: Train and Test Rasa Demo id: action - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' @@ -126,7 +126,7 @@ jobs: steps: # ... - name: Train and Test Rasa Demo - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' @@ -157,7 +157,7 @@ jobs: -O test_model.tar.gz - name: Train and Test Rasa Demo - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' @@ -178,7 +178,7 @@ jobs: steps: # ... - name: Train and Test Rasa Demo - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full' @@ -210,7 +210,7 @@ jobs: # ... - name: Train and Test Rasa Demo id: action - uses: RasaHQ/rasa-train-test-gha@master + uses: RasaHQ/rasa-train-test-gha@main with: # List of available tags: https://hub.docker.com/r/rasa/rasa/tags rasa_version: '2.0.0-full'