diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2023-11-30 20:35:25 +0000 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2023-11-30 20:35:25 +0000 |
commit | 1b7b916b7631ddf73c38e3a0070d64e4636cb2f3 (patch) | |
tree | cd08258054db80bb9a11b1061bb091c70b76926a /.github/scripts | |
parent | eaa89c11d0f8aefbb512de769c6c82f61a8baca3 (diff) | |
parent | 4a8bf24ac690004aedf5540fa440e788459e5e34 (diff) | |
download | rneovim-aucmd_textputpost.tar.gz rneovim-aucmd_textputpost.tar.bz2 rneovim-aucmd_textputpost.zip |
Merge remote-tracking branch 'upstream/master' into aucmd_textputpostaucmd_textputpost
Diffstat (limited to '.github/scripts')
-rwxr-xr-x | .github/scripts/build_universal_macos.sh | 21 | ||||
-rw-r--r-- | .github/scripts/close_unresponsive.js | 55 | ||||
-rw-r--r-- | .github/scripts/env.ps1 | 9 | ||||
-rwxr-xr-x | .github/scripts/install_deps.sh | 41 | ||||
-rwxr-xr-x | .github/scripts/install_deps_ubuntu.sh | 19 | ||||
-rw-r--r-- | .github/scripts/remove-reviewers.js | 10 | ||||
-rw-r--r-- | .github/scripts/remove_response_label.js (renamed from .github/scripts/unstale.js) | 0 | ||||
-rw-r--r-- | .github/scripts/reviews.js | 122 |
8 files changed, 196 insertions, 81 deletions
diff --git a/.github/scripts/build_universal_macos.sh b/.github/scripts/build_universal_macos.sh new file mode 100755 index 0000000000..d07c395cd6 --- /dev/null +++ b/.github/scripts/build_universal_macos.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e + +MACOSX_DEPLOYMENT_TARGET="$(sw_vers -productVersion | cut -f1 -d.)" +export MACOSX_DEPLOYMENT_TARGET +cmake -S cmake.deps -B .deps -G Ninja \ + -D CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} \ + -D CMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \ + -D CMAKE_OSX_ARCHITECTURES=arm64\;x86_64 \ + -D CMAKE_FIND_FRAMEWORK=NEVER +cmake --build .deps +cmake -B build -G Ninja \ + -D CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} \ + -D CMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \ + -D CMAKE_OSX_ARCHITECTURES=arm64\;x86_64 \ + -D CMAKE_FIND_FRAMEWORK=NEVER +cmake --build build +# Make sure we build everything for M1 as well +for macho in build/bin/* build/lib/nvim/parser/*.so; do + lipo -info "$macho" | grep -q arm64 || exit 1 +done +cpack --config build/CPackConfig.cmake diff --git a/.github/scripts/close_unresponsive.js b/.github/scripts/close_unresponsive.js new file mode 100644 index 0000000000..f0e8bbe93e --- /dev/null +++ b/.github/scripts/close_unresponsive.js @@ -0,0 +1,55 @@ +function labeledEvent(data) { + return data.event === "labeled" && data.label.name === "needs:response"; +} + +const numberOfDaysLimit = 30; +const close_message = `This has been closed since a request for information has \ +not been answered for ${numberOfDaysLimit} days. It can be reopened when the \ +requested information is provided.`; + +module.exports = async ({ github, context }) => { + const owner = context.repo.owner; + const repo = context.repo.repo; + + const issues = await github.rest.issues.listForRepo({ + owner: owner, + repo: repo, + labels: "needs:response", + }); + const numbers = issues.data.map((e) => e.number); + + for (const number of numbers) { + const events = await github.paginate( + github.rest.issues.listEventsForTimeline, + { + owner: owner, + repo: repo, + issue_number: number, + }, + (response) => response.data.filter(labeledEvent) + ); + + const latest_response_label = events[events.length - 1]; + + const created_at = new Date(latest_response_label.created_at); + const now = new Date(); + const diff = now - created_at; + const diffDays = diff / (1000 * 60 * 60 * 24); + + if (diffDays > numberOfDaysLimit) { + github.rest.issues.update({ + owner: owner, + repo: repo, + issue_number: number, + state: "closed", + }); + + github.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: number, + body: close_message, + }); + } + } +}; diff --git a/.github/scripts/env.ps1 b/.github/scripts/env.ps1 new file mode 100644 index 0000000000..d1dba5d558 --- /dev/null +++ b/.github/scripts/env.ps1 @@ -0,0 +1,9 @@ +# This script enables Developer Command Prompt +# See https://github.com/microsoft/vswhere/wiki/Start-Developer-Command-Prompt#using-powershell +$installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath +if ($installationPath -and (Test-Path "$installationPath\Common7\Tools\vsdevcmd.bat")) { + & "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | ForEach-Object { + $name, $value = $_ -split '=', 2 + "$name=$value" >> $env:GITHUB_ENV + } +} diff --git a/.github/scripts/install_deps.sh b/.github/scripts/install_deps.sh new file mode 100755 index 0000000000..9a782e9698 --- /dev/null +++ b/.github/scripts/install_deps.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +while (($# > 0)); do + case $1 in + --test) # install test dependencies + TEST=1 + shift + ;; + esac +done + +os=$(uname -s) +if [[ $os == Linux ]]; then + sudo apt-get update + sudo apt-get install -y build-essential cmake curl gettext ninja-build + + if [[ $CC == clang ]]; then + DEFAULT_CLANG_VERSION=$(echo | clang -dM -E - | grep __clang_major | awk '{print $3}') + CLANG_VERSION=17 + if ((DEFAULT_CLANG_VERSION >= CLANG_VERSION)); then + echo "Default clang version is $DEFAULT_CLANG_VERSION, which equal or larger than wanted version $CLANG_VERSION. Aborting!" + exit 1 + fi + + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh $CLANG_VERSION + sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-$CLANG_VERSION 100 + sudo update-alternatives --set clang /usr/bin/clang-$CLANG_VERSION + fi + + if [[ -n $TEST ]]; then + sudo apt-get install -y locales-all cpanminus attr libattr1-dev gdb + fi +elif [[ $os == Darwin ]]; then + brew update --quiet + brew install ninja + if [[ -n $TEST ]]; then + brew install cpanminus + fi +fi diff --git a/.github/scripts/install_deps_ubuntu.sh b/.github/scripts/install_deps_ubuntu.sh deleted file mode 100755 index 012409ba4a..0000000000 --- a/.github/scripts/install_deps_ubuntu.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -PACKAGES=( - autoconf - automake - build-essential - cmake - cpanminus - curl - gettext - libtool-bin - locales-all - ninja-build - pkg-config - unzip -) - -sudo apt-get update -sudo apt-get install -y "${PACKAGES[@]}" diff --git a/.github/scripts/remove-reviewers.js b/.github/scripts/remove-reviewers.js index 40a8eca423..9e44e4ac86 100644 --- a/.github/scripts/remove-reviewers.js +++ b/.github/scripts/remove-reviewers.js @@ -1,18 +1,16 @@ -module.exports = async ({github, context}) => { +module.exports = async ({ github, context }) => { const requestedReviewers = await github.rest.pulls.listRequestedReviewers({ owner: context.repo.owner, repo: context.repo.repo, - pull_number: context.issue.number + pull_number: context.issue.number, }); - const reviewers = requestedReviewers.data.users.map(e => e.login) - const team_reviewers = requestedReviewers.data.teams.map(e => e.name); + const reviewers = requestedReviewers.data.users.map((e) => e.login); github.rest.pulls.removeRequestedReviewers({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number, reviewers: reviewers, - team_reviewers: team_reviewers }); -} +}; diff --git a/.github/scripts/unstale.js b/.github/scripts/remove_response_label.js index f645fca5cb..f645fca5cb 100644 --- a/.github/scripts/unstale.js +++ b/.github/scripts/remove_response_label.js diff --git a/.github/scripts/reviews.js b/.github/scripts/reviews.js index cc6aaa1e8b..d28d91c2f6 100644 --- a/.github/scripts/reviews.js +++ b/.github/scripts/reviews.js @@ -1,108 +1,118 @@ -module.exports = async ({github, context}) => { +module.exports = async ({ github, context }) => { const pr_data = await github.rest.pulls.get({ owner: context.repo.owner, repo: context.repo.repo, - pull_number: context.issue.number - }) - const labels = pr_data.data.labels.map(e => e.name) + pull_number: context.issue.number, + }); + const labels = pr_data.data.labels.map((e) => e.name); + const reviewers = new Set(); + + if (labels.includes("api")) { + reviewers.add("bfredl"); + reviewers.add("famiu"); + } - const reviewers = new Set() - const team_reviewers = new Array() - if (labels.includes('api')) { - reviewers.add("bfredl") - reviewers.add("muniter") + if (labels.includes("build")) { + reviewers.add("dundargoc"); + reviewers.add("jamessan"); + reviewers.add("justinmk"); } - if (labels.includes('build')) { - reviewers.add("jamessan") - reviewers.add("justinmk") + if (labels.includes("ci")) { + reviewers.add("dundargoc"); + reviewers.add("jamessan"); + reviewers.add("justinmk"); } - if (labels.includes('ci')) { - team_reviewers.push('ci'); + if (labels.includes("column")) { + reviewers.add("lewis6991"); } - if (labels.includes('column')) { - reviewers.add("lewis6991") + if (labels.includes("dependencies")) { + reviewers.add("jamessan"); } - if (labels.includes('dependencies')) { - reviewers.add("jamessan") + if (labels.includes("diagnostic")) { + reviewers.add("gpanders"); } - if (labels.includes('diagnostic')) { - reviewers.add("gpanders") + if (labels.includes("diff")) { + reviewers.add("lewis6991"); } - if (labels.includes('diff')) { - reviewers.add("lewis6991") + if (labels.includes("distribution")) { + reviewers.add("jamessan"); } - if (labels.includes('distribution')) { - reviewers.add("jamessan") + if (labels.includes("documentation")) { + reviewers.add("clason"); } - if (labels.includes('documentation')) { - reviewers.add("clason") + if (labels.includes("extmarks")) { + reviewers.add("bfredl"); } - if (labels.includes('extmarks')) { - reviewers.add("bfredl") + if (labels.includes("filetype")) { + reviewers.add("clason"); + reviewers.add("gpanders"); + reviewers.add("smjonas"); } - if (labels.includes('filetype')) { - reviewers.add("clason") - reviewers.add("gpanders") - reviewers.add("smjonas") + if (labels.includes("lsp")) { + reviewers.add("folke"); + reviewers.add("MariaSolOs"); + reviewers.add("mfussenegger"); } - if (labels.includes('lsp')) { - team_reviewers.push('lsp'); + if (labels.includes("options")) { + reviewers.add("famiu"); } - if (labels.includes('platform:nix')) { - reviewers.add("teto") + if (labels.includes("platform:nix")) { + reviewers.add("teto"); } - if (labels.includes('project-management')) { - reviewers.add("bfredl") - reviewers.add("justinmk") + if (labels.includes("project-management")) { + reviewers.add("bfredl"); + reviewers.add("justinmk"); } - if (labels.includes('refactor')) { - reviewers.add("bfredl") + if (labels.includes("statusline")) { + reviewers.add("famiu"); } - if (labels.includes('test')) { - reviewers.add("justinmk") + if (labels.includes("test")) { + reviewers.add("justinmk"); } - if (labels.includes('treesitter')) { - team_reviewers.push('treesitter'); + if (labels.includes("treesitter")) { + reviewers.add("bfredl"); + reviewers.add("clason"); + reviewers.add("lewis6991"); } - if (labels.includes('typo')) { - reviewers.add("dundargoc") + if (labels.includes("typo")) { + reviewers.add("dundargoc"); } - if (labels.includes('ui')) { - reviewers.add("bfredl") + if (labels.includes("ui")) { + reviewers.add("bfredl"); + reviewers.add("famiu"); } - if (labels.includes('vim-patch')) { - reviewers.add("seandewar") - reviewers.add("zeertzjq") + if (labels.includes("vim-patch")) { + reviewers.add("seandewar"); + reviewers.add("zeertzjq"); } // Remove person that opened the PR since they can't review themselves - const pr_opener = pr_data.data.user.login - reviewers.delete(pr_opener) + const pr_opener = pr_data.data.user.login; + reviewers.delete(pr_opener); github.rest.pulls.requestReviewers({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number, reviewers: Array.from(reviewers), - team_reviewers: team_reviewers }); -} +}; |