Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a github action to sync shared source from aspnetcore #61999

Merged
merged 2 commits into from
Nov 25, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/aspnetcore-sync-checkdiff.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Check the code is in sync
$changed = (select-string "nothing to commit" artifacts\status.txt).count -eq 0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this extra file needed? We could just inline this command in the gh action?

Also, I wonder if using git diff would be easier? Something like

git diff -M -C -b --ignore-cr-at-eol --ignore-space-at-eol --exit-code > ..\artifacts\diff.txt
$changed = !$?

The only issue I see with git diff are untracked files, so we would need to run git add -N . before running the command. Just an idea to consider.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess the aspnetcore version of this file did a lot more to open and comment on the github issue. Inlining just this part might be easier now.
https://github.com/dotnet/aspnetcore/blob/main/.github/workflows/ReportDiff.ps1

return $changed
72 changes: 72 additions & 0 deletions .github/workflows/aspnetcore-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: AspNetCore->Runtime Code Sync
on:
# Manual run
workflow_dispatch:

permissions:
contents: write
issues: write
pull-requests: write

jobs:
compare_repos:
# Comment out this line to test the scripts in a fork
if: github.repository == 'dotnet/runtime'
name: Compare the shared code in the AspNetCore and Runtime repos and send a PR to Runtime if they're out of sync.
Tratcher marked this conversation as resolved.
Show resolved Hide resolved
runs-on: windows-latest
steps:
- name: Checkout aspnetcore
uses: actions/[email protected]
with:
# Test this script using changes in a fork
repository: 'dotnet/aspnetcore'
# repository: 'tratcher/aspnetcore'
Tratcher marked this conversation as resolved.
Show resolved Hide resolved
path: aspnetcore
ref: main
- name: Checkout runtime
uses: actions/[email protected]
with:
# Test this script using changes in a fork
repository: 'dotnet/runtime'
# repository: 'tratcher/runtime'
Tratcher marked this conversation as resolved.
Show resolved Hide resolved
path: runtime
ref: main
- name: Copy
shell: cmd
working-directory: .\aspnetcore\src\Shared\runtime\
env:
RUNTIME_REPO: d:\a\runtime\runtime\runtime\
run: CopyToRuntime.cmd
- name: Diff
shell: cmd
working-directory: .\runtime\
run: |
mkdir ..\artifacts
git status > ..\artifacts\status.txt
git diff > ..\artifacts\diff.txt
- uses: actions/upload-artifact@v1
with:
name: results
path: artifacts
- name: Check
id: check
shell: pwsh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
$changed = .\runtime\.github\workflows\aspnetcore-sync-checkdiff.ps1
echo "::set-output name=changed::$changed"
- name: Send PR
if: steps.check.outputs.changed == 'true'
# https://github.com/marketplace/actions/create-pull-request
uses: dotnet/actions-create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
path: .\runtime
commit-message: 'Sync shared code from aspnetcore'
title: 'Sync shared code from aspnetcore'
body: 'This PR was automatically generated to sync shared code changes from aspnetcore. Fixes https://github.com/dotnet/aspnetcore/issues/18943'
labels: area-System.Net.Http
base: main
branch: github-action/sync-aspnetcore
branch-suffix: timestamp