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

[Discussion][CI] Migrate to Azure DevOps(formerly vsts) #22148

Closed
gengjiawen opened this issue Nov 5, 2018 · 14 comments
Closed

[Discussion][CI] Migrate to Azure DevOps(formerly vsts) #22148

gengjiawen opened this issue Nov 5, 2018 · 14 comments
Labels
Bug Contributor A React Native contributor. Partner Resolution: Locked This issue was locked by the bot. Type: Discussion Long running discussion.

Comments

@gengjiawen
Copy link
Contributor

gengjiawen commented Nov 5, 2018

MS annoucement: https://azure.microsoft.com/en-us/blog/introducing-azure-devops/.

Pros:

  • Free for opensource and unlimited time, circleci masOS plan has fee and also has limit time.
  • Support linux, macOS, windows, we can have a unify ci for mainstream os.

Cons:

  • Bug, currently you even can't see the build log.
  • Circle ci can ssh to remote machine, which is very convenient.
@axe-fb
Copy link
Contributor

axe-fb commented Nov 6, 2018

I pinged folks at Microsoft to see how we can proceed on this.

@willsmythe
Copy link

(moving the questions/conversations here)

@gengjiawen - can you provide more details on what you are (well, aren't) seeing? Are you able to access the build results view in Azure Pipelines? If so, what log are you expecting to see something in, but aren't?

If the Azure Pipelines project is public, can you send a link to your build?

@gengjiawen
Copy link
Contributor Author

@willsmythe
Copy link

@gengjiawen - not sure if you saw my comment or not. Here is a staged version of the pipeline referenced by the issue above: https://dev.azure.com/willsmythe/pipelines-xcode/_build/results?buildId=106&view=logs

Have you already created a pipeline for react-native? If not, I can stage one and we can go from there.

@gengjiawen
Copy link
Contributor Author

@willsmythe I see that. But I may need more time to look into this for now I am concentrating on new jsc.

@willsmythe
Copy link

@gengjiawen - no worries.

To get the ball rolling, I created an initial azure-pipelines.yml that builds on Windows (essentially replacing AppVeyor). I will start stubbing in steps for Linux and macOS as well. Here are the relevant files:

I had to tweak one test (ios::writePlist should write a .plist file) due to differences in line endings, but I would probably fix this a little differently (i.e. add a .gitattributes entry for __fixtures__/Info.plist that ensures LF line endings are preserved when the file is checked out on Windows). This would avoid the change in writePlist. The other option is to skip the test on Windows (xit).

Build results are here:
https://willsmythe.visualstudio.com/react-native/_build?definitionId=26&_a=summary

image

And the test results:
image

I added a test-ci-win NPM run script (since you can't set variables at the start of the script on Windows), but I would likely just create a CI jest config file that could be referenced instead (it would set the reporter, test results file path, etc).

@gengjiawen
Copy link
Contributor Author

gengjiawen commented Nov 20, 2018

Excellent work.

@gengjiawen
Copy link
Contributor Author

@willsmythe How about we try docker build on linux. I did somework on #21477. I don't know vsts has docker layer caching or something.

@gengjiawen
Copy link
Contributor Author

Also do vsts has ssh function on linux build, I think it's super important for test.

@gengjiawen
Copy link
Contributor Author

@willsmythe I run into some 401 error when setting up my account. Can you help on this ?

@willsmythe
Copy link

@gengjiawen - sure --- feel free to send me an email (wismythe at microsoft.com) with the name of your Azure DevOps org and the account you tried to sign in with.

I had hoped to play with the Linux/Docker build last week, but got sidetracked on another project. My goal is to have something running this week ...

@gengjiawen
Copy link
Contributor Author

I googled and make it work. Thanks.

@gengjiawen
Copy link
Contributor Author

I have tried azcure pipeline in this project, https://github.com/react-native-community/ci-sample.

@hramos hramos removed the Bug Report label Feb 6, 2019
@hramos hramos added Partner Contributor A React Native contributor. and removed Core Team labels Mar 8, 2019
@Salakar Salakar added the Type: Discussion Long running discussion. label Mar 19, 2019
@cpojer
Copy link
Contributor

cpojer commented Mar 19, 2019

Given that this issue is a proposal to change all of our CI to a new system, I think this should go into the discussions and proposals repository with a clear explanation of the work to be done and the benefits and trade-offs it will bring.

@cpojer cpojer closed this as completed Mar 19, 2019
@facebook facebook locked as resolved and limited conversation to collaborators Mar 19, 2020
@react-native-bot react-native-bot added the Resolution: Locked This issue was locked by the bot. label Mar 19, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug Contributor A React Native contributor. Partner Resolution: Locked This issue was locked by the bot. Type: Discussion Long running discussion.
Projects
None yet
Development

No branches or pull requests

7 participants