From a63a2bbbd466ca8decc09dbfc03c75159cd998be Mon Sep 17 00:00:00 2001 From: Rohan Bhaumik Date: Tue, 26 Sep 2023 12:02:38 -0400 Subject: [PATCH 1/4] Adding Support for ATS and commenting doc updates + publish steps on CI --- .github/workflows/tests.yml | 213 +++++++++++++++++++----------------- codecov.yml | 14 +++ 2 files changed, 124 insertions(+), 103 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 03ac463520..240131de87 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -45,109 +45,116 @@ jobs: run: | pip install poetry poetry install + - name: Run ATS + uses: codecov/codecov-ats@v0 + env: + CODECOV_STATIC_TOKEN: ${{ secrets.CODECOV_STATIC_TOKEN }} + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: Run tests run: | - poetry run pytest --exitfirst --reruns 2 --disable-warnings --log-cli-level=DEBUG --cov-report xml:cov.xml --cov=bbot . - - name: Upload Code Coverage - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: ./cov.xml + poetry run pytest --cov bbot ${{ env.CODECOV_ATS_TESTS }} + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4-beta + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + with: + flags: smart-tests + plugins: pycoverage,compress-pycoverage verbose: true - update_docs: - needs: test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - token: ${{ secrets.BBOT_DOCS_UPDATER_PAT }} - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - name: Install dependencies - run: | - pip install poetry - poetry install - - name: Generate docs - run: | - poetry run bbot/scripts/docs.py - - name: Commit docs - uses: EndBug/add-and-commit@v9 - continue-on-error: true - with: - add: "*.md" - author_name: "BBOT Docs Autopublish" - author_email: info@blacklanternsecurity.com - message: "Refresh module docs" - publish_docs: - needs: update_docs - runs-on: ubuntu-latest - if: github.event_name == 'push' && github.event.pull_request.base.ref == 'dev' - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - uses: actions/cache@v3 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - run: pip install mkdocs-material mkdocs-extra-sass-plugin livereload - - run: mkdocs gh-deploy --force - publish_code: - needs: update_docs - runs-on: ubuntu-latest - if: github.event_name == 'pull_request_target' && github.event.pull_request.merged == true && (github.event.pull_request.base.ref == 'dev' || github.event.pull_request.base.ref == 'stable') - continue-on-error: true - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install poetry build - poetry self add "poetry-dynamic-versioning[plugin]" - - name: Build Pypi package - if: github.ref == 'refs/heads/stable' || github.ref == 'refs/heads/dev' - run: python -m build - - name: Publish Pypi package - if: github.ref == 'refs/heads/stable' || github.ref == 'refs/heads/dev' - uses: pypa/gh-action-pypi-publish@release/v1.5 - with: - password: ${{ secrets.PYPI_API_TOKEN }} - - name: Get BBOT version - id: version - run: | - echo "::set-output name=BBOT_VERSION::$(poetry version | cut -d' ' -f2 | tr -d v)" - - name: Publish to Docker Hub (dev) - if: github.ref == 'refs/heads/dev' - uses: elgohr/Publish-Docker-Github-Action@v5 - with: - name: blacklanternsecurity/bbot - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - tags: "latest,dev,${{ steps.version.outputs.BBOT_VERSION }}" - - name: Publish to Docker Hub (stable) - if: github.ref == 'refs/heads/stable' - uses: elgohr/Publish-Docker-Github-Action@v5 - with: - name: blacklanternsecurity/bbot - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - tags: "stable,${{ steps.version.outputs.BBOT_VERSION }}" - - name: Docker Hub Description - if: github.ref == 'refs/heads/dev' - uses: peter-evans/dockerhub-description@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - repository: blacklanternsecurity/bbot + # update_docs: + # needs: test + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # with: + # token: ${{ secrets.BBOT_DOCS_UPDATER_PAT }} + # - name: Set up Python + # uses: actions/setup-python@v4 + # with: + # python-version: "3.x" + # - name: Install dependencies + # run: | + # pip install poetry + # poetry install + # - name: Generate docs + # run: | + # poetry run bbot/scripts/docs.py + # - name: Commit docs + # uses: EndBug/add-and-commit@v9 + # continue-on-error: true + # with: + # add: "*.md" + # author_name: "BBOT Docs Autopublish" + # author_email: info@blacklanternsecurity.com + # message: "Refresh module docs" + # publish_docs: + # needs: update_docs + # runs-on: ubuntu-latest + # if: github.event_name == 'push' && github.event.pull_request.base.ref == 'dev' + # steps: + # - uses: actions/checkout@v3 + # - uses: actions/setup-python@v4 + # with: + # python-version: "3.x" + # - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + # - uses: actions/cache@v3 + # with: + # key: mkdocs-material-${{ env.cache_id }} + # path: .cache + # restore-keys: | + # mkdocs-material- + # - run: pip install mkdocs-material mkdocs-extra-sass-plugin livereload + # - run: mkdocs gh-deploy --force + # publish_code: + # needs: update_docs + # runs-on: ubuntu-latest + # if: github.event_name == 'pull_request_target' && github.event.pull_request.merged == true && (github.event.pull_request.base.ref == 'dev' || github.event.pull_request.base.ref == 'stable') + # continue-on-error: true + # steps: + # - uses: actions/checkout@v3 + # with: + # fetch-depth: 0 + # - name: Set up Python + # uses: actions/setup-python@v4 + # with: + # python-version: "3.x" + # - name: Install dependencies + # run: | + # python -m pip install --upgrade pip + # pip install poetry build + # poetry self add "poetry-dynamic-versioning[plugin]" + # - name: Build Pypi package + # if: github.ref == 'refs/heads/stable' || github.ref == 'refs/heads/dev' + # run: python -m build + # - name: Publish Pypi package + # if: github.ref == 'refs/heads/stable' || github.ref == 'refs/heads/dev' + # uses: pypa/gh-action-pypi-publish@release/v1.5 + # with: + # password: ${{ secrets.PYPI_API_TOKEN }} + # - name: Get BBOT version + # id: version + # run: | + # echo "::set-output name=BBOT_VERSION::$(poetry version | cut -d' ' -f2 | tr -d v)" + # - name: Publish to Docker Hub (dev) + # if: github.ref == 'refs/heads/dev' + # uses: elgohr/Publish-Docker-Github-Action@v5 + # with: + # name: blacklanternsecurity/bbot + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # tags: "latest,dev,${{ steps.version.outputs.BBOT_VERSION }}" + # - name: Publish to Docker Hub (stable) + # if: github.ref == 'refs/heads/stable' + # uses: elgohr/Publish-Docker-Github-Action@v5 + # with: + # name: blacklanternsecurity/bbot + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # tags: "stable,${{ steps.version.outputs.BBOT_VERSION }}" + # - name: Docker Hub Description + # if: github.ref == 'refs/heads/dev' + # uses: peter-evans/dockerhub-description@v3 + # with: + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # repository: blacklanternsecurity/bbot diff --git a/codecov.yml b/codecov.yml index e532a1059e..be78ff3de5 100644 --- a/codecov.yml +++ b/codecov.yml @@ -6,3 +6,17 @@ coverage: project: off patch: off github_checks: false + +flag_management: + individual_flags: + - name: smart-tests + carryforward: true + carryforward_mode: "labels" + statuses: + - type: "project" + - type: "patch" + +cli: + plugins: + pycoverage: + report_type: "json" \ No newline at end of file From 673346e74e3e882c7439c5f1dc3b2a9e2779d1d7 Mon Sep 17 00:00:00 2001 From: Rohan Bhaumik Date: Tue, 26 Sep 2023 12:06:20 -0400 Subject: [PATCH 2/4] fixing syntax errors --- .github/workflows/tests.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 240131de87..170560bc37 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -54,13 +54,13 @@ jobs: run: | poetry run pytest --cov bbot ${{ env.CODECOV_ATS_TESTS }} - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4-beta - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - flags: smart-tests - plugins: pycoverage,compress-pycoverage - verbose: true + uses: codecov/codecov-action@v4-beta + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + with: + flags: smart-tests + plugins: pycoverage,compress-pycoverage + verbose: true # update_docs: # needs: test # runs-on: ubuntu-latest From e1f2b08b255fb26f634edd610ccee8cba27790f7 Mon Sep 17 00:00:00 2001 From: Rohan Bhaumik Date: Tue, 26 Sep 2023 12:07:47 -0400 Subject: [PATCH 3/4] removed verbose.. testing if ATS works --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 170560bc37..d437e9ed26 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -60,7 +60,7 @@ jobs: with: flags: smart-tests plugins: pycoverage,compress-pycoverage - verbose: true + #verbose: true # update_docs: # needs: test # runs-on: ubuntu-latest From e16dca79f26df4ff4dbdfebcbff10cf1e64035f8 Mon Sep 17 00:00:00 2001 From: Rohan Bhaumik Date: Tue, 26 Sep 2023 12:48:34 -0400 Subject: [PATCH 4/4] fixing coverage params --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d437e9ed26..63986489ba 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -52,7 +52,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: Run tests run: | - poetry run pytest --cov bbot ${{ env.CODECOV_ATS_TESTS }} + poetry run pytest --exitfirst --reruns 2 --disable-warnings --log-cli-level=DEBUG --cov-report xml:cov.xml --cov=bbot . ${{ env.CODECOV_ATS_TESTS }} - name: Upload coverage to Codecov uses: codecov/codecov-action@v4-beta env: