From 71abf11e4bf3676b53188587212cbbb9cdd88595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kriszti=C3=A1n=20Sz=C5=B1cs?= Date: Tue, 5 Jan 2021 12:57:33 +0100 Subject: [PATCH 1/2] Use pip to install crossbow's dependencies --- .github/workflows/comment_bot.yml | 211 +++++++++++++++--------------- dev/archery/setup.py | 4 +- 2 files changed, 107 insertions(+), 108 deletions(-) diff --git a/.github/workflows/comment_bot.yml b/.github/workflows/comment_bot.yml index 352e69cc5ee..858e5d777aa 100644 --- a/.github/workflows/comment_bot.yml +++ b/.github/workflows/comment_bot.yml @@ -18,33 +18,30 @@ name: Comment Bot on: + pull_request: + push: # TODO(kszucs): support pull_request_review_comment - issue_comment: - types: - - created - - edited + # issue_comment: + # types: + # - created + # - edited jobs: crossbow: name: Listen! - if: startsWith(github.event.comment.body, '@github-actions crossbow') + # if: startsWith(github.event.comment.body, '@github-actions crossbow') runs-on: ubuntu-latest steps: - name: Checkout Arrow uses: actions/checkout@v2 with: path: arrow - # because libgit2 is a dependency of crossbow so prefer conda - - name: Setup Conda - uses: s-weigand/setup-conda@v1 + - name: Set up Python + uses: actions/setup-python@v2 with: - update-conda: true - python-version: 3.7 - conda-channels: conda-forge - - name: Instal Archery and Crossbow dependencies - run: | - conda install -y --file arrow/ci/conda_env_crossbow.txt pygithub - pip install -e arrow/dev/archery[bot] + python-version: 3.8 + - name: Install Archery and Crossbow dependencies + run: pip install -e arrow/dev/archery[bot] - name: Handle Github comment event env: ARROW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -54,96 +51,96 @@ jobs: --event-name ${{ github.event_name }} \ --event-payload ${{ github.event_path }} - autotune: - name: "Fix all the things" - if: startsWith(github.event.comment.body, '@github-actions autotune') - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: r-lib/actions/pr-fetch@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: See what is different - run: | - set -ex - git remote add upstream https://github.com/apache/arrow - git fetch upstream - changed() { - git diff --name-only HEAD..upstream/master | grep -e "$1" >/dev/null 2>&1 - } - if changed '^r/.*\.R$'; then - echo "R_DOCS=true" >> $GITHUB_ENV - fi - if changed 'cmake' || changed 'CMake'; then - echo "CMAKE_FORMAT=true" >> $GITHUB_ENV - fi - if changed '^cpp/src'; then - echo "CLANG_FORMAT_CPP=true" >> $GITHUB_ENV - fi - if changed '^r/src'; then - echo "CLANG_FORMAT_R=true" >> $GITHUB_ENV - fi - - name: Run cmake_format - if: env.CMAKE_FORMAT == 'true' || endsWith(github.event.comment.body, 'everything') - run: | - set -ex - export PATH=/home/runner/.local/bin:$PATH - python3 -m pip install --upgrade pip setuptools wheel - python3 -m pip install -r dev/archery/requirements-lint.txt - python3 run-cmake-format.py - - name: Run clang-format on cpp - if: env.CLANG_FORMAT_CPP == 'true' || endsWith(github.event.comment.body, 'everything') - run: | - . .env # To get the clang version we use - cpp/build-support/run_clang_format.py \ - --clang_format_binary=clang-format-${CLANG_TOOLS} \ - --exclude_glob=cpp/build-support/lint_exclusions.txt \ - --source_dir=cpp/src --quiet --fix - - name: Run clang-format on r - if: env.CLANG_FORMAT_R == 'true' || endsWith(github.event.comment.body, 'everything') - run: | - . .env # To get the clang version we use - cpp/build-support/run_clang_format.py \ - --clang_format_binary=clang-format-${CLANG_TOOLS} \ - --exclude_glob=cpp/build-support/lint_exclusions.txt \ - --source_dir=r/src --quiet --fix - - uses: r-lib/actions/setup-r@v1 - if: env.R_DOCS == 'true' || endsWith(github.event.comment.body, 'everything') - - name: Update R docs - if: env.R_DOCS == 'true' || endsWith(github.event.comment.body, 'everything') - shell: Rscript {0} - run: | - source("ci/etc/rprofile") - install.packages(c("remotes", "roxygen2")) - remotes::install_deps("r") - roxygen2::roxygenize("r") - - name: Commit results - run: | - git config user.name "$(git log -1 --pretty=format:%an)" - git config user.email "$(git log -1 --pretty=format:%ae)" - git commit -a -m 'Autoformat/render all the things [automated commit]' || echo "No changes to commit" - - uses: r-lib/actions/pr-push@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} + # autotune: + # name: "Fix all the things" + # if: startsWith(github.event.comment.body, '@github-actions autotune') + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: r-lib/actions/pr-fetch@master + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: See what is different + # run: | + # set -ex + # git remote add upstream https://github.com/apache/arrow + # git fetch upstream + # changed() { + # git diff --name-only HEAD..upstream/master | grep -e "$1" >/dev/null 2>&1 + # } + # if changed '^r/.*\.R$'; then + # echo "R_DOCS=true" >> $GITHUB_ENV + # fi + # if changed 'cmake' || changed 'CMake'; then + # echo "CMAKE_FORMAT=true" >> $GITHUB_ENV + # fi + # if changed '^cpp/src'; then + # echo "CLANG_FORMAT_CPP=true" >> $GITHUB_ENV + # fi + # if changed '^r/src'; then + # echo "CLANG_FORMAT_R=true" >> $GITHUB_ENV + # fi + # - name: Run cmake_format + # if: env.CMAKE_FORMAT == 'true' || endsWith(github.event.comment.body, 'everything') + # run: | + # set -ex + # export PATH=/home/runner/.local/bin:$PATH + # python3 -m pip install --upgrade pip setuptools wheel + # python3 -m pip install -r dev/archery/requirements-lint.txt + # python3 run-cmake-format.py + # - name: Run clang-format on cpp + # if: env.CLANG_FORMAT_CPP == 'true' || endsWith(github.event.comment.body, 'everything') + # run: | + # . .env # To get the clang version we use + # cpp/build-support/run_clang_format.py \ + # --clang_format_binary=clang-format-${CLANG_TOOLS} \ + # --exclude_glob=cpp/build-support/lint_exclusions.txt \ + # --source_dir=cpp/src --quiet --fix + # - name: Run clang-format on r + # if: env.CLANG_FORMAT_R == 'true' || endsWith(github.event.comment.body, 'everything') + # run: | + # . .env # To get the clang version we use + # cpp/build-support/run_clang_format.py \ + # --clang_format_binary=clang-format-${CLANG_TOOLS} \ + # --exclude_glob=cpp/build-support/lint_exclusions.txt \ + # --source_dir=r/src --quiet --fix + # - uses: r-lib/actions/setup-r@v1 + # if: env.R_DOCS == 'true' || endsWith(github.event.comment.body, 'everything') + # - name: Update R docs + # if: env.R_DOCS == 'true' || endsWith(github.event.comment.body, 'everything') + # shell: Rscript {0} + # run: | + # source("ci/etc/rprofile") + # install.packages(c("remotes", "roxygen2")) + # remotes::install_deps("r") + # roxygen2::roxygenize("r") + # - name: Commit results + # run: | + # git config user.name "$(git log -1 --pretty=format:%an)" + # git config user.email "$(git log -1 --pretty=format:%ae)" + # git commit -a -m 'Autoformat/render all the things [automated commit]' || echo "No changes to commit" + # - uses: r-lib/actions/pr-push@master + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} - rebase: - name: "Rebase" - if: startsWith(github.event.comment.body, '@github-actions rebase') - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: r-lib/actions/pr-fetch@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Rebase on ${{ github.repository }} master - run: | - set -ex - git config user.name "$(git log -1 --pretty=format:%an)" - git config user.email "$(git log -1 --pretty=format:%ae)" - git remote add upstream https://github.com/${{ github.repository }} - git fetch --unshallow upstream master - git rebase upstream/master - - uses: r-lib/actions/pr-push@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - args: "--force" + # rebase: + # name: "Rebase" + # if: startsWith(github.event.comment.body, '@github-actions rebase') + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: r-lib/actions/pr-fetch@master + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Rebase on ${{ github.repository }} master + # run: | + # set -ex + # git config user.name "$(git log -1 --pretty=format:%an)" + # git config user.email "$(git log -1 --pretty=format:%ae)" + # git remote add upstream https://github.com/${{ github.repository }} + # git fetch --unshallow upstream master + # git rebase upstream/master + # - uses: r-lib/actions/pr-push@master + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # args: "--force" diff --git a/dev/archery/setup.py b/dev/archery/setup.py index 27d7d4db436..2696c0ae5a6 100755 --- a/dev/archery/setup.py +++ b/dev/archery/setup.py @@ -26,7 +26,9 @@ extras = { 'benchmark': ['pandas'], - 'bot': ['ruamel.yaml', 'pygithub'], + # bot extra includes crossbow's dependencies + 'bot': ['ruamel.yaml', 'pygithub', 'github3.py', 'jinja2', 'jira', + 'pygit2', 'setuptools_scm', 'toolz'], 'docker': ['ruamel.yaml', 'python-dotenv'], 'release': ['jinja2', 'jira', 'semver', 'gitpython'] } From 92b86111a3b31a435c4665979734a08cd5ff1a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kriszti=C3=A1n=20Sz=C5=B1cs?= Date: Tue, 5 Jan 2021 14:08:47 +0100 Subject: [PATCH 2/2] Trigger on comment --- .github/workflows/comment_bot.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/comment_bot.yml b/.github/workflows/comment_bot.yml index 858e5d777aa..fef3cd8ef2a 100644 --- a/.github/workflows/comment_bot.yml +++ b/.github/workflows/comment_bot.yml @@ -18,18 +18,16 @@ name: Comment Bot on: - pull_request: - push: # TODO(kszucs): support pull_request_review_comment - # issue_comment: - # types: - # - created - # - edited + issue_comment: + types: + - created + - edited jobs: crossbow: name: Listen! - # if: startsWith(github.event.comment.body, '@github-actions crossbow') + if: startsWith(github.event.comment.body, '@github-actions crossbow') runs-on: ubuntu-latest steps: - name: Checkout Arrow @@ -51,6 +49,7 @@ jobs: --event-name ${{ github.event_name }} \ --event-payload ${{ github.event_path }} + # TODO(kszucs): re-enable the following workflows once r-lib/* actions are allowed to run # autotune: # name: "Fix all the things" # if: startsWith(github.event.comment.body, '@github-actions autotune')