1- # Synchronizes .netconfig-configured files with dotnet-file
1+ # Synchronizes .netconfig-configured files with dotnet-file
22name : dotnet-file
33on :
44 workflow_dispatch :
1010env :
1111 DOTNET_NOLOGO : true
1212
13- defaults :
14- run :
15- shell : pwsh
16-
1713jobs :
18- sync :
19- runs-on : ubuntu-latest
20- continue-on-error : true
21- steps :
22- - name : 🤖 defaults
23- uses : devlooped/actions-bot@v1
24- with :
25- name : ${{ secrets.BOT_NAME }}
26- email : ${{ secrets.BOT_EMAIL }}
27- gh_token : ${{ secrets.GH_TOKEN }}
28- github_token : ${{ secrets.GITHUB_TOKEN }}
29-
30- - name : 🤘 checkout
31- uses : actions/checkout@v4
32- with :
33- fetch-depth : 0
34- ref : main
35- token : ${{ env.GH_TOKEN }}
36-
37- - name : ⌛ rate
38- if : github.event_name != 'workflow_dispatch'
39- run : |
40- # add random sleep since we run on fixed schedule
41- sleep (get-random -max 60)
42- # get currently authenticated user rate limit info
43- $rate = gh api rate_limit | convertfrom-json | select -expandproperty rate
44- # if we don't have at least 100 requests left, wait until reset
45- if ($rate.remaining -lt 10) {
46- $wait = ($rate.reset - (Get-Date (Get-Date).ToUniversalTime() -UFormat %s))
47- echo "Rate limit remaining is $($rate.remaining), waiting for $($wait / 1000) seconds to reset"
48- sleep $wait
49- $rate = gh api rate_limit | convertfrom-json | select -expandproperty rate
50- echo "Rate limit has reset to $($rate.remaining) requests"
51- }
52-
53- - name : 🔄 sync
54- run : |
55- dotnet tool update -g dotnet-gcm
56- # store credentials in plaintext for linux compat
57- git config --local credential.credentialStore plaintext
58- dotnet gcm store --protocol=https --host=github.com --username=$env:GITHUB_ACTOR --password=$env:GH_TOKEN
59- gh auth status
60-
61- dotnet tool update -g dotnet-file
62- $changelog = "$([System.IO.Path]::GetTempPath())dotnet-file.md"
63- dotnet file sync -c:$changelog
64- if (test-path $changelog) {
65- echo 'CHANGES<<EOF' >> $env:GITHUB_ENV
66- cat $changelog >> $env:GITHUB_ENV
67- echo 'EOF' >> $env:GITHUB_ENV
68- cat $changelog
69- } else {
70- echo 'No changelog was generated'
71- }
72-
73- - name : +Mᐁ includes
74- uses : devlooped/actions-includes@v1
75- with :
76- validate : false
77-
78- - name : ⚙ dotnet
79- uses : devlooped/actions-dotnet-env@v1
80-
81- - name : 🙏 build
82- run : dotnet build -m:1 -bl:build.binlog
83-
84- - name : 🧪 test
85- run : |
86- dotnet tool update -g dotnet-retest
87- dotnet retest -- --no-build
88-
89- - name : ✍ pull request
90- uses : peter-evans/create-pull-request@v7
91- with :
92- base : main
93- branch : dotnet-file-sync
94- delete-branch : true
95- labels : dependencies
96- author : ${{ env.BOT_AUTHOR }}
97- committer : ${{ env.BOT_AUTHOR }}
98- commit-message : ⬆️ Bump files with dotnet-file sync
99-
100- ${{ env.CHANGES }}
101- title : " ⬆️ Bump files with dotnet-file sync"
102- body : ${{ env.CHANGES }}
103- token : ${{ env.GH_TOKEN }}
14+ run :
15+ permissions :
16+ contents : write
17+ uses : devlooped/oss/.github/workflows/dotnet-file-core.yml@main
18+ secrets :
19+ BOT_NAME : ${{ secrets.BOT_NAME }}
20+ BOT_EMAIL : ${{ secrets.BOT_EMAIL }}
21+ GH_TOKEN : ${{ secrets.GH_TOKEN }}
0 commit comments