From 797d04ed5e2b036efb9eca4afd67b3e080ade5ff Mon Sep 17 00:00:00 2001 From: devlooped-bot Date: Thu, 29 Aug 2024 01:06:59 +0000 Subject: [PATCH] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20files=20with=20dotn?= =?UTF-8?q?et-file=20sync=20#=20devlooped/oss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use custom stale action to exempt authors https://github.com/devlooped/oss/commit/03b7d53 - Simplify testing by switching to dotnet-retest https://github.com/devlooped/oss/commit/b5bb972 - We don't push just from ubuntu anymore https://github.com/devlooped/oss/commit/7ec9101 # devlooped/sponsors --- .github/workflows/build.yml | 11 ++--- .github/workflows/changelog.config | 2 +- .github/workflows/publish.yml | 4 +- .github/workflows/stale.yml | 69 ++++++++++++++++++++++++++++++ .github/workflows/test/action.yml | 36 ---------------- .netconfig | 26 +++++------ docs/sponsors.md | 1 + readme.md | 1 + 8 files changed, 91 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/stale.yml delete mode 100644 .github/workflows/test/action.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index de732f2..648d55a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,14 +67,10 @@ jobs: - name: ๐Ÿ™ build run: dotnet build -m:1 -bl:build.binlog - - name: โš™ GNU grep - if: matrix.os == 'macOS-latest' - run: | - brew install grep - echo 'export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"' >> .bash_profile - - name: ๐Ÿงช test - uses: ./.github/workflows/test + run: | + dotnet tool update -g dotnet-retest + dotnet retest -- --no-build - name: ๐Ÿ› logs uses: actions/upload-artifact@v3 @@ -83,7 +79,6 @@ jobs: name: logs path: '*.binlog' - # Only push CI package to sleet feed if building on ubuntu (fastest) - name: ๐Ÿš€ sleet env: SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }} diff --git a/.github/workflows/changelog.config b/.github/workflows/changelog.config index cd34ee7..e47bccd 100644 --- a/.github/workflows/changelog.config +++ b/.github/workflows/changelog.config @@ -1,7 +1,7 @@ usernames-as-github-logins=true issues_wo_labels=true pr_wo_labels=true -exclude-labels=bydesign,dependencies,duplicate,question,invalid,wontfix,need info,docs +exclude-labels=bydesign,dependencies,duplicate,discussion,question,invalid,wontfix,need info,docs enhancement-label=:sparkles: Implemented enhancements: bugs-label=:bug: Fixed bugs: issues-label=:hammer: Other: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 82ef81b..a4be3ad 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,7 +30,9 @@ jobs: run: dotnet build -m:1 -bl:build.binlog - name: ๐Ÿงช test - uses: ./.github/workflows/test + run: | + dotnet tool update -g dotnet-retest + dotnet retest -- --no-build - name: ๐Ÿ› logs uses: actions/upload-artifact@v3 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..2c06279 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,69 @@ +name: 'stale' +on: + schedule: + - cron: '42 0 * * *' + + workflow_dispatch: + # Manual triggering through the GitHub UI, API, or CLI + inputs: + daysBeforeStale: + required: true + default: "180" + daysBeforeClose: + required: true + default: "30" + operationsPerRun: + required: true + default: "4000" + +permissions: + actions: write # For managing the operation state cache + issues: write + +jobs: + stale: + # Do not run on forks + if: github.repository_owner == 'devlooped' + runs-on: ubuntu-latest + steps: + - name: โŒ› rate + shell: pwsh + if: github.event_name != 'workflow_dispatch' + env: + GH_TOKEN: ${{ github.token }} + run: | + # add random sleep since we run on fixed schedule + $wait = get-random -max 180 + echo "Waiting random $wait seconds to start" + sleep $wait + # get currently authenticated user rate limit info + $rate = gh api rate_limit | convertfrom-json | select -expandproperty rate + # if we don't have at least 100 requests left, wait until reset + if ($rate.remaining -lt 100) { + $wait = ($rate.reset - (Get-Date (Get-Date).ToUniversalTime() -UFormat %s)) + echo "Rate limit remaining is $($rate.remaining), waiting for $($wait / 1000) seconds to reset" + sleep $wait + $rate = gh api rate_limit | convertfrom-json | select -expandproperty rate + echo "Rate limit has reset to $($rate.remaining) requests" + } + + - name: โœ๏ธ label + # pending merge: https://github.com/actions/stale/pull/1176 + uses: kzu/stale@c8450312ba97b204bf37545cb249742144d6ca69 + with: + ascending: true # Process the oldest issues first + stale-issue-label: 'stale' + stale-issue-message: | + Due to lack of recent activity, this issue has been labeled as 'stale'. + It will be closed if no further activity occurs within ${{ fromJson(inputs.daysBeforeClose || 30 ) }} more days. + Any new comment will remove the label. + close-issue-message: | + This issue will now be closed since it has been labeled 'stale' without activity for ${{ fromJson(inputs.daysBeforeClose || 30 ) }} days. + days-before-stale: ${{ fromJson(inputs.daysBeforeStale || 180) }} + days-before-close: ${{ fromJson(inputs.daysBeforeClose || 30 ) }} + days-before-pr-close: -1 # Do not close PRs labeled as 'stale' + operations-per-run: ${{ fromJson(inputs.operationsPerRun || 4000 )}} + exempt-all-milestones: true + exempt-all-assignees: true + exempt-issue-labels: priority,sponsor,backed + exempt-authors: kzu diff --git a/.github/workflows/test/action.yml b/.github/workflows/test/action.yml deleted file mode 100644 index 4a7dbae..0000000 --- a/.github/workflows/test/action.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: test -description: runs dotnet tests with retry -runs: - using: "composite" - steps: - - name: ๐Ÿงช test - shell: bash --noprofile --norc {0} - env: - LC_ALL: en_US.utf8 - run: | - [ -f .bash_profile ] && source .bash_profile - counter=0 - exitcode=0 - reset="\e[0m" - warn="\e[0;33m" - while [ $counter -lt 6 ] - do - # run test and forward output also to a file in addition to stdout (tee command) - if [ $filter ] - then - echo -e "${warn}Retry $counter for $filter ${reset}" - dotnet test --no-build -m:1 --blame-hang --blame-hang-timeout 5m --filter=$filter | tee ./output.log - else - dotnet test --no-build -m:1 --blame-hang --blame-hang-timeout 5m | tee ./output.log - fi - # capture dotnet test exit status, different from tee - exitcode=${PIPESTATUS[0]} - if [ $exitcode == 0 ] - then - exit 0 - fi - # cat output, get failed test names, remove trailing whitespace, sort+dedupe, join as FQN~TEST with |, remove trailing |. - filter=$(cat ./output.log | grep -o -P '(?<=\sFailed\s)[\w\._]*' | sed 's/ *$//g' | sort -u | awk 'BEGIN { ORS="|" } { print("FullyQualifiedName~" $0) }' | grep -o -P '.*(?=\|$)') - ((counter++)) - done - exit $exitcode diff --git a/.netconfig b/.netconfig index 363cc74..3912ffe 100644 --- a/.netconfig +++ b/.netconfig @@ -38,9 +38,9 @@ sha = 49661dbf0720cde93eb5569be7523b5912351560 [file ".github/workflows/build.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/build.yml - etag = 20ef46203325f5b3d06a991f8b38c24bcea49fd74d39062a62003448e2dd8b0a + etag = 35b2a5b03c26cbe7522e30b2b987e04991e8ba18accd38b7ebd88191f1698c2d weak - sha = 65f89e06ed7b2ac33ed3b729adc865b7076840d8 + sha = 7ec91019eddb4fc7e0b09118538b256087f82e18 [file ".github/workflows/changelog.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.yml etag = ad1efa56d6024ee1add2bcda81a7e4e38d0e9069473c6ff70374d5ce06af1f5a @@ -48,9 +48,9 @@ sha = 5fb172362c767bef7c36478f1a6bdc264723f8f9 [file ".github/workflows/publish.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/publish.yml - etag = 105db682c332b2bb0873e60a7d2da45b00fe7d83da0f0e7dbf9a84bc5be77c25 + etag = 5a85d51e8c6cc6fbda43e12b3712a1e908a8e99b0908c4033ac9f4c66e5f233e weak - sha = 40ee833a83d843c242914599e2635ca9a05aa837 + sha = b5bb972199aa6ff220dda196588b23c21bb2780f [file ".github/workflows/release-artifacts.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/release-artifacts.yml skip @@ -109,11 +109,6 @@ sha = 7afe350f7e80a230e922db026d4e1198ba15cae1 etag = 65e9794df6caff779eb989c8f71ddf4d4109b24a75af79e4f8d0fe6ba7bd9702 weak -[file ".github/workflows/test/action.yml"] - url = https://github.com/devlooped/oss/blob/main/.github/workflows/test/action.yml - sha = 9a1b07589b9bde93bc12528e9325712a32dec418 - etag = b54216ac431a83ce5477828d391f02046527e7f6fffd21da1d03324d352c3efb - weak [file ".github/workflows/includes.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/includes.yml sha = d152e7437fd0d6f6d9363d23cb3b78c07335ea49 @@ -121,8 +116,8 @@ weak [file "docs/sponsors.md"] url = https://github.com/devlooped/sponsors/blob/main/sponsors.md - sha = 5b5677437244c1a438cfd112346ff81d26022648 - etag = 261048ffc90606558721dfb7dc6a56f02920af0320fb4f560aa3b679103d7667 + sha = c6b7ac2728318bef908418fc14c9de65e0a29123 + etag = eee31cf60901c697a545e9fd5d182e6e8354fe11eeee8d2d17034e182723edc9 weak [file ".github/workflows/combine-prs.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/combine-prs.yml @@ -131,11 +126,16 @@ weak [file ".github/workflows/changelog.config"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.config - sha = 055a8b7c94b74ae139cce919d60b83976d2a9942 - etag = ddb17acb5872e9e69a76f9dec0ca590f25382caa2ccf750df058dcabb674db2b + sha = 08d83cb510732f861416760d37702f9f55bd7f9e + etag = 556a28914eeeae78ca924b1105726cdaa211af365671831887aec81f5f4301b4 weak [file ".github/release.yml"] url = https://github.com/devlooped/oss/blob/main/.github/release.yml sha = 1afd173fe8f81b510c597737b0d271218e81fa73 etag = 482dc2c892fc7ce0cb3a01eb5d9401bee50ddfb067d8cb85873555ce63cf5438 weak +[file ".github/workflows/stale.yml"] + url = https://github.com/devlooped/oss/blob/main/.github/workflows/stale.yml + sha = 03b7d535f782ceaf918eeea82ca374bc8c93288a + etag = 1efabca4a7436d756e8d24e616a8ecda54f55b49eab623168149f042131e67d6 + weak diff --git a/docs/sponsors.md b/docs/sponsors.md index 4996882..f58f953 100644 --- a/docs/sponsors.md +++ b/docs/sponsors.md @@ -33,4 +33,5 @@ [![Vezel](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/vezel-dev.png "Vezel")](https://github.com/vezel-dev) [![ChilliCream](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/ChilliCream.png "ChilliCream")](https://github.com/ChilliCream) [![4OTC](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/4OTC.png "4OTC")](https://github.com/4OTC) +[![Vincent Limo](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/v-limo.png "Vincent Limo")](https://github.com/v-limo) diff --git a/readme.md b/readme.md index 4a52a71..495533e 100644 --- a/readme.md +++ b/readme.md @@ -188,6 +188,7 @@ degrading functionality. [![Vezel](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/vezel-dev.png "Vezel")](https://github.com/vezel-dev) [![ChilliCream](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/ChilliCream.png "ChilliCream")](https://github.com/ChilliCream) [![4OTC](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/4OTC.png "4OTC")](https://github.com/4OTC) +[![Vincent Limo](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/v-limo.png "Vincent Limo")](https://github.com/v-limo)