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

[cucumber-messages] .NET library #635

Merged
merged 14 commits into from Jul 3, 2019
Merged

Conversation

SabotageAndi
Copy link
Contributor

@SabotageAndi SabotageAndi commented Jun 14, 2019

Summary

.NET library for cucumber-messages

Details

Motivation and Context

We need it for SpecFlow

How Has This Been Tested?

Already used in SpecFlow

Types of changes

  • Bug fix (non-breaking change which fixes an issue).
  • New feature (non-breaking change which adds functionality).
  • Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist:

  • The change has been ported to Java.
  • The change has been ported to Ruby.
  • The change has been ported to JavaScript.
  • The change has been ported to Go.
  • The change has been ported to .NET.
  • I've added tests for my code.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

aslakhellesoy and others added 4 commits June 14, 2019 15:36
…rd2.0 (#608)

* improve gitignore

* update solution

* update packages

* update target frameworks

* use Grpc.Tools for generating Protobuf code files

* remove generation of Messages.cs from makefile

* add netfx.props

* move messages.proto into Cucumber.Messages

* add directory.build.props

* update Cucumber.Messages project file

* update solution file

* update Grpc.Tools package

* update default.mk

* add .travis.yml file

* move messages.proto in root directory again
* cherry pick changes from david1995

* fix .gitignore and default.mk

* adjust package details

* add signing of Cucumber.Messages

* use messages.proto from outer folder

* build always nuget packages
This required some changes to the Docker image, which in turn caused
some other files in this repo to be modified when I ran a full build.
@aslakhellesoy
Copy link
Contributor

Now that Microsoft has released a Docker image with .NET, we can base our own image on that one. We no longer need a separate Docker image for .NET - one image to rule them all :-)

I also managed to get the prebuilt protobuf package for Alpine Linux working (with a small hack in Dockerfile) so we don't need to build protobuf from scratch every time we build a new image.

The protoc inside the nuget package is broken on Alpine, so the Makefile will now overwrite it with the official Alpine protoc if the build runs in Docker.

I'm now able to build cucumber-messages/dotnet inside Docker:

docker run -v "$(pwd)":/app -it cucumber/cucumber-build:53bdf15c8c2e8fab1fab780056642239
cd /app/cucumber-messages/dotnet
make clean
make

It looks like the protoc is being overwritten again, causing the build to fail: https://travis-ci.org/cucumber/cucumber/jobs/553286928#L1831

I've got an idea how to fix that...

@SabotageAndi
Copy link
Contributor Author

I think I solved the protoc problem.
I added an restore command before the build, so the NuGet packages are downloaded and only after that the protoc binary is replaced.

There is still one error left with .NET Framework 4.5.

@SabotageAndi
Copy link
Contributor Author

Thanks to @dasMulli it looks like the error for .NET Framework 4.5 is now also fixed.

@aslakhellesoy aslakhellesoy merged commit 9e14a30 into master Jul 3, 2019
Ongoing maintenance automation moved this from In progress to Done Jul 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants