Skip to content

Create internal CI & PR builds #579

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

Merged
merged 1 commit into from
Mar 27, 2024
Merged

Create internal CI & PR builds #579

merged 1 commit into from
Mar 27, 2024

Conversation

WilliamXieMSFT
Copy link
Member

Summary

This change introduces internal builds that mirror our public builds in dev.azure.com/ms so that we can remove a cross-org PAT token (scoped to build-artifact-read, used by our test infrastructure) that was getting flagged.

Change Log
  • Consolidate stages into build_and_package.yaml template that all top-level pipeline yaml can consume
  • Introduce pr_internal.yaml and ci_internal.yaml that rely on internal templates
  • Fixed some binskim issues that popped up (disabled in CI/PR builds as we have a dedicated internal analysis pipeline)
Test Methodology

Internal builds

@WilliamXieMSFT WilliamXieMSFT requested a review from a team as a code owner March 27, 2024 02:42
extends:
template: azure-pipelines/MicroBuild.1ES.Unofficial.yml@MicroBuildTemplate
parameters:
pool:
Copy link
Contributor

Choose a reason for hiding this comment

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

pool

refresh my memory: the reason that we have to have two of these is because the internal builds don't have outputs that are available to the public, right?

Are there other teams that are doing this in the same way? For example, Roslyn?

I can imagine a world where these builds aren't in this repo at all, instead, we have builds that are in a separate repo that check out the source code from here. But, I don't think that those can easily be triggered from changes in github, right?

Copy link
Member Author

Choose a reason for hiding this comment

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

the internal builds don't have outputs that are available to the public, right?

That's correct, and yes, Roslyn has internal builds pulling from their public GitHub repo (eg. https://github.com/dotnet/roslyn/blob/main/azure-pipelines-pr-validation.yml)

We have builds that are in a separate repo that check out the source code from here

Moving the builds to a separate repo would help reduce churn in this repo but might make it more difficult to maintain build hygiene. Having an internal clone of the repo with builds is another option; Perfview has a process like that.

I don't think that those can easily be triggered from changes in github, right?

I think we can do something with GitHub webhooks or actions - maybe something we do in the near future

Copy link
Contributor

@delmyers delmyers left a comment

Choose a reason for hiding this comment

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

:shipit:

# Binaries (Windows & Linux)
- template: ../jobs/binaries.yaml@self
parameters:
IndexSources: true
Copy link
Member Author

Choose a reason for hiding this comment

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

IndexSources: true

The only difference between CI and PR is whether we inex sources or not. However, the task itself doesn't support GitHub source provider so it doesn't do anything anyways.

@WilliamXieMSFT WilliamXieMSFT merged commit cfceec5 into main Mar 27, 2024
56 checks passed
@WilliamXieMSFT WilliamXieMSFT deleted the dev/willxie/internal branch March 27, 2024 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants