GithubHelp home page GithubHelp logo

brandedoutcast / publish-nuget Goto Github PK

View Code? Open in Web Editor NEW
196.0 5.0 99.0 35 KB

πŸ“¦ GitHub action to automate publishing NuGet packages when project version changes

Home Page: https://github.com/marketplace/actions/publish-nuget

License: MIT License

JavaScript 100.00%
github-action nuget publishing dotnet-core tag release version

publish-nuget's People

Contributors

arahaan avatar bgianfo avatar brandedoutcast avatar cuzzlor avatar deadpikle avatar erikjanwestendorp avatar luhis avatar lukebakken avatar mbucari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

publish-nuget's Issues

[Feature Request] Custom package name

Hi!

Is there a chance we could have a way to specify the package name (PACKAGE_NAME) specifically in case it differs from the project file path name? Right now, my NuGet package has a different project name than the package ID I want to upload to on NuGet, so version detection isn't working properly.

Thanks!

when nuget package in "Validating" status

upload package error


##[error]😭 error: Response status code does not indicate success: 409 (A package with ID 'sabre.net' and version '1.0.4' already exists and cannot be modified.).
/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:23
        throw new Error(msg)
        ^

Error: error: Response status code does not indicate success: 409 (A package with ID 'sabre.net' and version '1.0.4' already exists and cannot be modified.).
    at Action._printErrorAndExit (/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:23:15)
    at Action._pushPackage (/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:73:18)
    at IncomingMessage.<anonymous> (/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:109:30)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1184:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

Also a question regarding multiple projects

Hey,

thank you for this action! I also have a question regarding multiple projects. I'm new to Github Actions so sorry.

I have the following structure:
Root Folder -> src\Project1
Root Folder -> src\Project2

and so on. How do I get this action to publish everything under src? It is somehow possible?

Kind Regards,
Daniel

Publish an Unlisted Package to NuGet

Hi, I wonder if there is a way to publish an unlisted package to NuGet (sort of a private library that we don't want to expose to the public packages directory) using your Github action? I did not find a guide on how to do it in your docs.

image

[Feature] .Net Framework support

Can you add an options to use this action with msbuild and nuget.exe to publish framework packages? Some projects ( for example Uwp) need msbuild.

[FEATURE] Multiple Nuget Deploy, 1 Step

First of thanks for creating this action, I am using the pants off of it right now.

This seems like a straightforward request that I am surprised it hasn't been solved (that I could find with Googling a way to do this).

Would rather create a step that I supply a directory and we just recursively find all .CSPROJ and pack/push them with the same configuration and continue-on-error true.

Providing my current workflow as there maybe a way to do this that I just can't seem to find the instructions for.

https://github.com/houseofcat/Library/blob/master/.github/workflows/nuget-publish.yml

[BUG] Project file not found

Any help with this?
It says Project file not found, and I'm not sure why it wasn't found. I used to use your action a while ago too, and it worked like a charm back them. You can see the history for earlier version.

Any help?

Running publish when ran in a tag.

I would like a flag be added where I can control (like what I do in my .net core nuget packages already) where I use tags that I create manually to trigger a deployment to nuget.org.

But I would also like to extend it farther than that and have an option where later in my projects I can use this package to publish pre-release versions of the packages (and symbol packages) to the github packages stuff (with that flag off to denote non-tag builds, and with the flag set to not create a tag.

Doing this would allow me to drop appveyor (crapveyor) entirely as it is slow as heck for what I need it for. Since it takes a long time on that CI just to boot up the build images and with waiting periods on builds which sometimes results in waiting maybe 10~6 hours waiting for the statuses to complete in maybe ~10 commits or so.

https://github.com/Elskom/zlib.managed/blob/master/appveyor.yml#L42-L47
the linked appveyor yml contains the encrypted nuget api key I use as well as the flag that they use APPVEYOR_REPO_TAG being true on tag builds and APPVEYOR_REPO_TAG_NAME being the name of the tag whileAPPVEYOR_REPO_TAG being false o non-tag builds and APPVEYOR_REPO_TAG_NAME being nothing but an empty string.

[BUG] Doesn't work, no error message

Describe the bug
The action doesn't create a Nuget package in my Nuget account and no tag is created in my repository. There is no error message.

Failed Action Log URL (Required)
https://github.com/mpolicki/WinApi/runs/1013294195

Expected Behavior
WinApi.4.0.0.nupkg in the list of published packages in my Nuget account.
A v4.0.0 tag in the project repository.

Environment:

  • Platform: Ubuntu 18.04.5 LTS
  • Action Version: 2

A better way to detect version change

The action fails to detect a new version if the change is not part of the latest commit. It's due to the current implementation looking at last 2 commits to spot any difference

A better way would be look at current version in the project file & look for any existing tag with that version, if none exists then assume it's a new version & tag it

[BUG] Sequential build and publish deleting nuget packages

Describe the bug
Each build and push step deletes all nuget packages from previous one

Failed Action Log URL (Required)
https://github.com/appany/AppAny.Quartz.EntityFrameworkCore.Migrations/runs/1913414360?check_suite_focus=true

To Reproduce

  1. Build and publish first package
  2. Build and publish second package
  3. Create release
  4. Try to upload first .nuget to artifacts
  5. BOOM

Expected Behavior
Each build step has its own directory for .nuget files and do not delete previous

The workaround is to reorder steps

Here is the problem

fs.readdirSync(".").filter(fn => /\.s?nupkg$/.test(fn)).forEach(fn => fs.unlinkSync(fn))

Environment:

  • Platform [e.g. Windows / Linux]
  • Action Version [e.g. v2.5.3]

Unable to extract version info (windows)

This is what I am using in my Action yml

    - name: Publish NuGet
      uses: rohith/[email protected]
      with:
        PROJECT_FILE_PATH: Source/Source.csproj
        NUGET_KEY: ${{secrets.NUGET_API_KEY}}

But I get

##[error]😒 unable to extract version info!
D:\a\_actions\rohith\publish-nuget\v2.2.0\index.js:24
        throw new Error(msg)
        ^

Error: 😒 unable to extract version info!
    at Action._fail (D:\a\_actions\rohith\publish-nuget\v2.2.0\index.js:24:15)
    at Action.run (D:\a\_actions\rohith\publish-nuget\v2.2.0\index.js:100:22)
    at Object.<anonymous> (D:\a\_actions\rohith\publish-nuget\v2.2.0\index.js:130:14)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
    at internal/main/run_main_module.js:17:11

My Repo : https://github.com/AnmolSinha1201/Surrogate

Pickup version from files like Directory.Build.props

Nice work on this action so far, it has been super helpful :)

I am wanting to change over to specifying our package version in a shared Directory.Build.props file so that we only have to update it in one place. The Directory.Build.props file looks like this:

<Project>
  <PropertyGroup>
    <Version>0.1.2</Version>
  </PropertyGroup>
</Project>

After doing this though, the publish script no longer picks up the version in the csproj file and aborts the publish process. Would it be possible to fetch the version from other MSBuild files like Directory.Build.props?
Thanks

[BUG] error: Value cannot be null. (Parameter 'path2')

Describe the bug
My package was published successfully, but after the message "Your package was pushed." I get this error "Value cannot be null. (Parameter 'path2')"

Failed Action Log URL (Required)
https://github.com/uiahhh/MongoDB.EntityFramework/runs/2170548370?check_suite_focus=true

To Reproduce
https://github.com/uiahhh/MongoDB.EntityFramework/blob/master/.github/workflows/publish-nuget.yml

Expected Behavior
No errors after the message "Your package was pushed."

Environment:

  • Platform [Linux]
  • Action Version [v2] (rohith/publish-nuget@v2)

Rename branch master to main.

Most github actions that I use today renamed their default branch to main so we could consume them as repo owner/repo name@main.

As such I would like this action to follow that as well too.

HTTP 409 when publishing multiple projects

Thank you for this great action!
I'm currently trying to set it up for one of my projects. Similar to #9, I want to publish multiple projects in one job. In my case, the projects build to the same output directory.
So, when the second package is about to be pushed, the first one is sent again, because of the specified *.nupkg filename pattern.

const NUGET_PUSH_RESPONSE = this._execAndCapture(`dotnet nuget push *.nupkg -s https://api.nuget.org/v3/index.json -k ${this.NUGET_KEY}`)

This leads to an http result 409 and lets the Action fail. My error message is this one:

##[error]😭 error: Response status code does not indicate success: 409 (A package with ID '...' and version '...' already exists and cannot be modified.).

Suggestions:

  • Extend the filename pattern to ${this.PACKAGE_NAME}*.nupkg. In this case, the user still has to take care if he wants to publish for example "A.B" and "A". The "A" needs to published first, then "A.B".
  • Add the parameter --skip-duplicate, so the error 409 isn't returned.

Thank you :)

does not understand prerelease extensions to the version number

Hi,
when i set "1.0.0-pre1" as the nuget version, this action correctly detects the change, but publishes the nuget package with version 1.0.0 instead of 1.0.0-pre1 (whatever is after the dash means it is a prerelease package).

Any idea how to fix ?

F# Support

I would love to be able to publish my F# projects using this library! (Currently it can't find the project)

[FEATURE] Windows build support

Is your feature request related to a problem? Please describe.
I cannot build a .NET Core 3.0 app that uses System.Windows.Forms.

Describe the solution you'd like
I want the build to be able to happen on Windows so that the build succeeds.

Describe alternatives you've considered
I can see no alternatives other than handling the pack/deploy myself outside of the GitHub Action

Additional context
This is the result of the job run.

[Bug] Using VersionPrefix-VersionSuffix for Version always considers as new

I'm using VersionPrefix and VersionSuffix for my Version in .csproj. It looks like this:

<VersionPrefix>2.0.0</VersionPrefix>
<VersionSuffix>ci303</VersionSuffix>
<Version>$(VersionPrefix)-$(VersionSuffix)</Version>
<!--<Version>2.0.0-ci303</Version>-->

On my nuget page I already have version 2.0.0-ci303 published, but extension thinks it's a new version and tries to publish package (which, obviously, fails).
I used <Version>2.0.0-ci303</Version> before and it worked as it should, so I guess the issue is about VersionPrefix and VersionSuffix only.

I also tried to set Version back to 2.0.0-ci303 this way:

<!--<Version>$(VersionPrefix)-$(VersionSuffix)</Version>-->
<Version>2.0.0-ci303</Version>

But it also breaks CD the same way. I suppose, comments should not be proceeded by default?

[Bug] fail publishing nuget when there is a nupkg folder

When there is a nupkg folder, the following error occurs.

Error: EISDIR: illegal operation on a directory, unlink 'nupkg'
    at Object.unlinkSync (fs.js:1035:3)
    at /home/runner/work/_actions/brandedoutcast/publish-nuget/v2.5.0/index.js:58:81
    at Array.forEach (<anonymous>)
    at Action._pushPackage (/home/runner/work/_actions/brandedoutcast/publish-nuget/v2.5.0/index.js:58:64)
    at IncomingMessage.<anonymous> (/home/runner/work/_actions/brandedoutcast/publish-nuget/v2.5.0/index.js:109:30)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1184:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: -21,
  syscall: 'unlink',
  code: 'EISDIR',
  path: 'nupkg'

Error occurs at:
https://github.com/brandedoutcast/publish-nuget/blob/master/index.js#L58

Maybe to skip deleting the folders, or delete the folders by other operation?

[BUG] Unrecognized option '--skip-duplicate'

Describe the bug
This is somewhat similar to #37 .

Given that #37 was closed with a link to #4864 and commit c12b854

I have still encountered this issue trying to publish to Nuget with the following error

Generated Package(s): AfricasTalking.NET.1.2.1.nupkg
executing: [dotnet nuget push *.nupkg -s https://api.nuget.org/v3/index.json -k *** --skip-duplicate -n 1]
Specify --help for a list of available options and commands.
error: Unrecognized option '--skip-duplicate

Failed Action Log URL (Required)
https://github.com/AfricasTalkingLtd/africastalking.Net/actions/runs/342255796

To Reproduce
Steps to reproduce the behavior:

  1. In your workflows/steps.yml add the following
name: .NETBuild

on:
  push:
    branches: [ master ]

jobs:
  build:

    runs-on: windows-latest
    strategy:
      matrix:
        dotnet: [ '2.2.103', '3.0', '3.1.x' ]
    name: Build ${{ matrix.dotnet }}
    steps:
    - uses: actions/checkout@v2
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: ${{ matrix.dotnet }}
    - name: Install dependencies
      run: dotnet restore
    - name: Build
      run: dotnet build --configuration Release --no-restore
    - name: Test
      run: dotnet test --no-restore --verbosity normal
    - name: Publish Package
      uses: rohith/publish-nuget@v2
      with:
          PROJECT_FILE_PATH: AfricasTalkingCS/AfricasTalkingCS.csproj  ## Change to something else
          NUGET_KEY: ${{secrets.NUGET_API_KEY}} ## Change to something else
          PACKAGE_NAME: AfricasTalking.NET ## Change to something else

Expected Behavior
Successful push to Nuget like https://github.com/AfricasTalkingLtd/africastalking.Net/actions/runs/184718535

Environment:

[BUG] Does not use the VERSION_STATIC property

Describe the bug
Does nothing with the version number assigned through VERSION_STATIC

Failed Action Log URL (Required)
A URL to the failed action log.

To Reproduce
Steps to reproduce the behavior:

  1. Assign value to VERSION_STATIC

Expected Behavior
NuGet package should be created with the assigned version

Environment:

[FEATURE] Failing if a nuget package with same version already exists

This usually happens when we already have a nuget package with the same version already hosted on nuget. AFAIK, since we are not allowed to "replace" a package on nuget, is it possible for you to fail instead? That way, if this is already part of a pipeline, the pipeline would actually fail and it would be a reminder for us to update the version.

[Bug] Failed to publish symbols

First of all many thanks for this action. It has saved me so much pain!!

I see that since a more recent publish you now default to also pushing symbols, this however made my CI exit out with exit code 1 as it was unable to find a file named *.symbols.nupkg. For now I disabled it by passing INCLUDE_SYMBOLS: false to the config but I wanted to bring it up anyway. Below is the full raw log of the action and this is where it ran and failed: https://github.com/favware/graphql-pokemon/runs/639296241?check_suite_focus=true

This is the CSPROJ file that it uses for publishing: https://github.com/favware/graphql-pokemon/blob/master/generated/dotnet/Favware.Graphqlpokemon.csproj
Note that the (single) .cs file that it publishes is autogenerated by the github action and never tracked in Git, therefore it is not in the repository. That said, here is a version of it: https://hasteb.in/comoroni.cs

Full raw action log
2020-05-02T19:34:29.7073157Z ##[group]Run actions/download-artifact@v2-preview
2020-05-02T19:34:29.7073662Z with:
2020-05-02T19:34:29.7074101Z   name: changelog_bundle
2020-05-02T19:34:29.7074548Z env:
2020-05-02T19:34:29.7074989Z   DOTNET_CLI_TELEMETRY_OPTOUT: true
2020-05-02T19:34:29.7075446Z ##[endgroup]
2020-05-02T19:34:29.8509681Z Directory structure has been setup for the artifact
2020-05-02T19:34:29.8517789Z Total number of files that will be downloaded: 1
2020-05-02T19:34:29.9054512Z Artifact changelog_bundle was downloaded to /home/runner/work/graphql-pokemon/graphql-pokemon
2020-05-02T19:34:29.9055609Z Artifact download has finished successfully
2020-05-02T19:34:29.9207304Z ##[group]Run actions/setup-dotnet@v1
2020-05-02T19:34:29.9207792Z with:
2020-05-02T19:34:29.9208251Z   dotnet-version: 3.1.201
2020-05-02T19:34:29.9208714Z env:
2020-05-02T19:34:29.9209176Z   DOTNET_CLI_TELEMETRY_OPTOUT: true
2020-05-02T19:34:29.9209713Z ##[endgroup]
2020-05-02T19:34:30.0781357Z [command]/home/runner/work/_actions/actions/setup-dotnet/v1/externals/get-os-distro.sh
2020-05-02T19:34:30.0955884Z Primary:linux-x64
2020-05-02T19:34:30.1014124Z Legacy:ubuntu.18.04
2020-05-02T19:34:30.1015188Z Checking tool cache
2020-05-02T19:34:30.1018819Z Getting a download url 3.1.201
2020-05-02T19:34:31.8666692Z Extracting Package /home/runner/work/_temp/770d3a80-8f9c-4ee1-87c0-4a8962a1d55d
2020-05-02T19:34:31.8683402Z [command]/bin/tar xz -C /home/runner/work/_temp/fd2b2875-3f51-4cd6-8efc-589878f82a5b -f /home/runner/work/_temp/770d3a80-8f9c-4ee1-87c0-4a8962a1d55d
2020-05-02T19:34:34.9351463Z Caching tool
2020-05-02T19:34:37.3037328Z Successfully installed 3.1.201
2020-05-02T19:34:37.3310158Z ##[group]Run rohith/publish-nuget@v2
2020-05-02T19:34:37.3310635Z with:
2020-05-02T19:34:37.3311113Z   PROJECT_FILE_PATH: generated/dotnet/Favware.Graphqlpokemon.csproj
2020-05-02T19:34:37.3311622Z   PACKAGE_NAME: Favware.Graphqlpokemon
2020-05-02T19:34:37.3312098Z   TAG_COMMIT: false
2020-05-02T19:34:37.3312991Z   NUGET_KEY: ***
2020-05-02T19:34:37.3313451Z   VERSION_REGEX: <Version>(.*)<\/Version>
2020-05-02T19:34:37.3313914Z   TAG_FORMAT: v*
2020-05-02T19:34:37.3314496Z   NUGET_SOURCE: https://api.nuget.org
2020-05-02T19:34:37.3314975Z   NUGET_SYMBOL_SOURCE: https://api.nuget.org
2020-05-02T19:34:37.3315440Z   INCLUDE_SYMBOLS: true
2020-05-02T19:34:37.3315862Z env:
2020-05-02T19:34:37.3316287Z   DOTNET_CLI_TELEMETRY_OPTOUT: true
2020-05-02T19:34:37.3316732Z   DOTNET_ROOT: /opt/hostedtoolcache/dncs/3.1.201/x64
2020-05-02T19:34:37.3317186Z ##[endgroup]
2020-05-02T19:34:37.3742046Z Project Filepath: generated/dotnet/Favware.Graphqlpokemon.csproj
2020-05-02T19:34:37.3745683Z Version Filepath: generated/dotnet/Favware.Graphqlpokemon.csproj
2020-05-02T19:34:37.3746460Z Version Regex: /<Version>(.*)<\/Version>/
2020-05-02T19:34:37.3747690Z Version: 3.0.2
2020-05-02T19:34:37.3750450Z Package Name: Favware.Graphqlpokemon
2020-05-02T19:34:37.4677585Z Γ’Ε“Β¨ found new version (3.0.2) of Favware.Graphqlpokemon
2020-05-02T19:34:37.4678840Z NuGet Source: https://api.nuget.org
2020-05-02T19:34:37.4679603Z NuGet Symbol Source: https://api.nuget.org
2020-05-02T19:34:37.4683335Z executing: [dotnet build -c Release generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:37.5828017Z 
2020-05-02T19:34:37.5878252Z Welcome to .NET Core 3.1!
2020-05-02T19:34:37.5879828Z ---------------------
2020-05-02T19:34:37.5880550Z SDK Version: 3.1.201
2020-05-02T19:34:37.5880907Z 
2020-05-02T19:34:37.5881831Z ----------------
2020-05-02T19:34:37.5882894Z Explore documentation: https://aka.ms/dotnet-docs
2020-05-02T19:34:37.5883866Z Report issues and find source on GitHub: https://github.com/dotnet/core
2020-05-02T19:34:37.5885178Z Find out what's new: https://aka.ms/dotnet-whats-new
2020-05-02T19:34:37.5886466Z Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https
2020-05-02T19:34:37.5887823Z Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
2020-05-02T19:34:37.5889063Z Write your first app: https://aka.ms/first-net-core-app
2020-05-02T19:34:37.5890282Z --------------------------------------------------------------------------------------
2020-05-02T19:34:38.0166068Z Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
2020-05-02T19:34:38.0166762Z Copyright (C) Microsoft Corporation. All rights reserved.
2020-05-02T19:34:38.0167063Z 
2020-05-02T19:34:53.5611470Z   Restore completed in 14.66 sec for /home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj.
2020-05-02T19:34:54.9728321Z   Favware.Graphqlpokemon -> /home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.dll
2020-05-02T19:34:55.1722321Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.dll' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.dll' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:55.1732785Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.xml' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.xml' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:55.2063189Z   Successfully created package '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/Favware.Graphqlpokemon.3.0.2.nupkg'.
2020-05-02T19:34:55.2205203Z 
2020-05-02T19:34:55.2206110Z Build succeeded.
2020-05-02T19:34:55.2208721Z 
2020-05-02T19:34:55.2213407Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.dll' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.dll' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:55.2217091Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.xml' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.xml' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:55.2220624Z     2 Warning(s)
2020-05-02T19:34:55.2221104Z     0 Error(s)
2020-05-02T19:34:55.2223147Z 
2020-05-02T19:34:55.2223815Z Time Elapsed 00:00:17.14
2020-05-02T19:34:55.2397706Z executing: [dotnet pack --include-symbols -p:SymbolPackageFormat=snupkg --no-build -c Release generated/dotnet/Favware.Graphqlpokemon.csproj -o .]
2020-05-02T19:34:55.5266329Z Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
2020-05-02T19:34:55.5267946Z Copyright (C) Microsoft Corporation. All rights reserved.
2020-05-02T19:34:55.5268979Z 
2020-05-02T19:34:56.2613525Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.dll' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.dll' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:56.2622741Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.xml' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.xml' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:56.3053168Z   Successfully created package '/home/runner/work/graphql-pokemon/graphql-pokemon/Favware.Graphqlpokemon.3.0.2.nupkg'.
2020-05-02T19:34:56.3217946Z ##[warning]/opt/hostedtoolcache/dncs/3.1.201/x64/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): warning NU5118: File '/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/bin/Release/netcoreapp3.1/Favware.Graphqlpokemon.pdb' is not added because the package already contains file 'lib/netcoreapp3.1/Favware.Graphqlpokemon.pdb' [/home/runner/work/graphql-pokemon/graphql-pokemon/generated/dotnet/Favware.Graphqlpokemon.csproj]
2020-05-02T19:34:56.3240402Z   Successfully created package '/home/runner/work/graphql-pokemon/graphql-pokemon/Favware.Graphqlpokemon.3.0.2.snupkg'.
2020-05-02T19:34:56.3458754Z Generated Package(s): Favware.Graphqlpokemon.3.0.2.nupkg, Favware.Graphqlpokemon.3.0.2.snupkg
2020-05-02T19:34:56.3464906Z executing: [dotnet nuget push *.nupkg -s https://api.nuget.org/v3/index.json -k *** -ss https://api.nuget.org/v3/index.json -sk *** --skip-duplicate]
2020-05-02T19:34:57.5277931Z Pushing Favware.Graphqlpokemon.3.0.2.nupkg to 'https://www.nuget.org/api/v2/package'...
2020-05-02T19:34:57.5279963Z   PUT https://www.nuget.org/api/v2/package/
2020-05-02T19:34:57.5299018Z /home/runner/work/_actions/rohith/publish-nuget/v2/index.js:25
2020-05-02T19:34:57.5300573Z   Created https://www.nuget.org/api/v2/package/ 703ms
2020-05-02T19:34:57.5301777Z Your package was pushed.
2020-05-02T19:34:57.5302847Z error: File does not exist (*.symbols.nupkg).
2020-05-02T19:34:57.5303494Z 
2020-05-02T19:34:57.5304094Z 
2020-05-02T19:34:57.5305219Z Usage: dotnet nuget push [arguments] [options]
2020-05-02T19:34:57.5305849Z 
2020-05-02T19:34:57.5306799Z Arguments:
2020-05-02T19:34:57.5307838Z   [root]  Specify the path to the package and your API key to push the package to the server.
2020-05-02T19:34:57.5308587Z 
2020-05-02T19:34:57.5309540Z Options:
2020-05-02T19:34:57.5310913Z   -h|--help                      Show help information
2020-05-02T19:34:57.5312601Z   --force-english-output         Forces the application to run using an invariant, English-based culture.
2020-05-02T19:34:57.5314147Z   -s|--source <source>           Specifies the server URL
2020-05-02T19:34:57.5315853Z   -ss|--symbol-source <source>   Specifies the symbol server URL. If not specified, nuget.smbsrc.net is used when pushing to nuget.org.
2020-05-02T19:34:57.5317995Z   -t|--timeout <timeout>         Specifies the timeout for pushing to a server in seconds. Defaults to 300 seconds (5 minutes).
2020-05-02T19:34:57.5319542Z   -k|--api-key <apiKey>          The API key for the server.
2020-05-02T19:34:57.5320967Z   -sk|--symbol-api-key <apiKey>  The API key for the symbol server.
2020-05-02T19:34:57.5322589Z   -d|--disable-buffering         Disable buffering when pushing to an HTTP(S) server to decrease memory usage.
2020-05-02T19:34:57.5324301Z   -n|--no-symbols                If a symbols package exists, it will not be pushed to a symbols server.
2020-05-02T19:34:57.5325888Z   --no-service-endpoint          Does not append "api/v2/package" to the source URL.
2020-05-02T19:34:57.5327637Z   --interactive                  Allow the command to block and require manual action for operations like authentication.
2020-05-02T19:34:57.5329241Z   --skip-duplicate               If a package and version already exists, skip it and continue with the next package in the push, if any.
2020-05-02T19:34:57.5329681Z 
2020-05-02T19:34:57.5335231Z ##[error]😭 error: File does not exist (*.symbols.nupkg).
2020-05-02T19:34:57.5337026Z         throw new Error(msg)
2020-05-02T19:34:57.5337476Z         ^
2020-05-02T19:34:57.5337706Z 
2020-05-02T19:34:57.5338218Z Error: error: File does not exist (*.symbols.nupkg).
2020-05-02T19:34:57.5339123Z     at Action._printErrorAndExit (/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:25:15)
2020-05-02T19:34:57.5339933Z     at Action._pushPackage (/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:78:18)
2020-05-02T19:34:57.5345110Z     at IncomingMessage.<anonymous> (/home/runner/work/_actions/rohith/publish-nuget/v2/index.js:114:30)
2020-05-02T19:34:57.5345776Z     at IncomingMessage.emit (events.js:215:7)
2020-05-02T19:34:57.5346234Z     at endReadableNT (_stream_readable.js:1184:12)
2020-05-02T19:34:57.5346714Z     at processTicksAndRejections (internal/process/task_queues.js:80:21)
2020-05-02T19:34:57.5416138Z Post job cleanup.
2020-05-02T19:34:57.6455500Z [command]/usr/bin/git version
2020-05-02T19:34:57.6537852Z git version 2.26.0
2020-05-02T19:34:57.6689063Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2020-05-02T19:34:57.6690530Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
2020-05-02T19:34:57.6921011Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2020-05-02T19:34:57.6952226Z http.https://github.com/.extraheader
2020-05-02T19:34:57.6959266Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2020-05-02T19:34:57.6997389Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
2020-05-02T19:34:57.7282848Z Cleaning up orphan processes
2020-05-02T19:34:57.7465806Z Terminate orphan process: pid (3071) (dotnet)

As an aside, I assume the NUGET_SOURCE option is so we can use this action to publish to GitHub. If this is correct I would love it if you could include some instructions in the README for setting this up both in the workflow file as well as any config (if any at all) required to set in the csproj file. Coming from a NodeJS background and only publishing C# for end-users that's all way above my knowledge level right now.

[BUG] Unable to extract version info error

Description
Recently started receiving errors during running of action.
It says that it can't find version info.
Noticed that in 2.5.3 release VERSION_REGEX were changed to ^<Version>(.*)<\/Version>$ which doesn't ignore whitespaces in the beginning of the line

Failed Action Log URL
https://github.com/alexvolchetsky/yandex.alice.sdk/runs/864428591?check_suite_focus=true

To Reproduce
Test of ^<Version>(.*)<\/Version>$ on content of my .cspoj file:
https://regex101.com/r/ZpzZkk/3/
Can't match anything

Expected Behavior
Test of ^\s*<Version>(.*)<\/Version>$ on content of my .cspoj file:
https://regex101.com/r/ZpzZkk/2/
Matches version info

The same regex works if set VERSION_REGEX explicitly. For instance:

- name: publish on version change
    id: publish_nuget
    uses: rohith/publish-nuget@v2
    with:        
      PROJECT_FILE_PATH: ./src/Yandex.Alice.Sdk/Yandex.Alice.Sdk.csproj
      NUGET_KEY: ${{secrets.NUGET_API_KEY}}
      INCLUDE_SYMBOLS: true
      VERSION_REGEX: ^\s*<Version>(.*)<\/Version>$

Environment:

  • Platform: Ubuntu
  • Action Version: v2.5.3

add nupkg to release

Hello,

First thanks for your github action.
Would it be possible to automatically add the nupkg to the gtihub release when it is generated ?
I personnaly always add a nupkg to each github release and would find it very helpful if publish-nuget does it for me.

Nuget not finding the built file

Hi i just tried the action, but i had an weird error:

Restore completed in 1.9 sec for /home/runner/work/EasyConfig/EasyConfig/EasyConfig/EasyConfig.csproj. /usr/share/dotnet/sdk/3.1.101/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): error NU5026: The file '/home/runner/work/EasyConfig/EasyConfig/EasyConfig/bin/Release/netstandard2.1/EasyConfig.dll' to be packed was not found on disk. [/home/runner/work/EasyConfig/EasyConfig/EasyConfig/EasyConfig.csproj]

It is not finding the file in the bin folder, and even though it failed to publish to Nuget the action was marked as a success, took me a while to find out it was not published/uploaded correctly.

[BUG] --skip-duplicates doesn't work

I just wanted to inform you that the --skip-duplicates flag that is supplied to the dotnet nuget push command is not working at the moment.

I think the reason this isn't working is because of a bug in the --no-symbols flag. This flag expects a parameter to be supplied and thus takes the --skip-duplicates as parameter. You can work around this issue by just passing something else as paramter to the --no-symbols flag. (ie --no-symbols 1 --skip-duplicates).

See NuGet/Home#4864

not finding version number change on windows

I love the idea behind looking for the change to the <version></version> attribute, publishing and tagging based on this, however, I can't reliably get it to work.

I wonder if you can help by looking at my repo and config. The process correctly finds my project file but fails to recognise the version change.

https://github.com/cuzzlor/password-check/commit/d8a509d62c28514444bc853062844148308886f7/checks?check_suite_id=362514686

It reports: no version change in PasswordCheck.csproj

If I run git diff -U0 HEAD^ I see:

diff --git a/src/PasswordCheck/PasswordCheck.csproj b/src/PasswordCheck/PasswordCheck.csproj
index 9deb62f..fc555a4 100644
--- a/src/PasswordCheck/PasswordCheck.csproj
+++ b/src/PasswordCheck/PasswordCheck.csproj
@@ -13 +13 @@
-    <Version>1.0.2</Version>
+    <Version>1.0.3</Version>

this looks right!

Any idea what I am missing?

Thanks!

Silent fail on missing license

Hi,

Just came across an small issue, but when the license file isn't included for the project, and so the NuGet pack step fails, the action still registers it as a success. So below is a cutout of the output for a small project i have on github, as you can see the build succeeds, but the pack fails, and the push fails.

`--------------------------------------------------------------------------------------
Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

Restore completed in 742.19 ms for /home/runner/work/moodio/moodio/Moodio.Common/Moodio.Common.csproj.
Moodio.Common -> /home/runner/work/moodio/moodio/Moodio.Common/bin/Release/netstandard2.0/Moodio.Common.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:14.06
Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

/usr/share/dotnet/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): error NU5030: The license file 'LICENSE' does not exist in the package. [/home/runner/work/moodio/moodio/Moodio.Common/Moodio.Common.csproj]
Generated Package: undefined
error: File does not exist (undefined).

`

[BUG] env values ignored by steps.

Describe the bug
A clear and concise description of what the bug is.

Failed Action Log URL (Required)
A URL to the failed action log.
Failed run, line shows with INCLUDE_SYMBOLS: false
Same run, line shows env INCLUDE_SYMBOLS: true
Same run, line shows dotnet build with no --include-symbols
Same run, dotnet nuget push has -n 1 instead of empty string for that last ternary operator

To Reproduce
Steps to reproduce the behavior:

  1. Create a setup like the one above,.
  2. Set some variables in the job's env, and attempt to not use them in steps.

Expected Behavior
Variables set in env to apply, instead they seem not to.

Environment:

  • Platform: windows-latest
  • Action Version: v2.5.5

I've taken a look at index.js and it looks like everything should work, but I can't explain why my env output looks correct but the script doesn't seem to use the values in it!

Says it succeeds but seemingly does nothing

I just setup publish-nuget on my project. It runs on check-ins and detects the version number just fine, but it doesn't seem to do anything. There's no new version tagged in GitHub and the NuGet package isn't updated.

https://github.com/samuelneff/MimeTypeMap

https://www.nuget.org/packages/MimeTypeMapOfficial/

The package that is there now was uploaded manually.

I added the nuget api key to my GitHub secrets named as referenced and updated the yml file with the path to my csproj. Everything else is left as default.

Thanks!

Sam

Logs

Set up job2s
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu18/20200525.2/images/linux/Ubuntu1804-README.md
Current runner version: '2.169.1'
Operating System
Ubuntu
18.04.4
LTS
Virtual Environment
Environment: ubuntu-18.04
Version: 20200525.2
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu18/20200525.2/images/linux/Ubuntu1804-README.md
Prepare workflow directory
Prepare all required actions
Download action repository 'actions/checkout@v2'
Download action repository 'rohith/publish-nuget@v2'
Run actions/checkout@v21s
Branch 'master' set up to track remote branch 'master' from 'origin'.
Run actions/checkout@v2
Syncing repository: samuelneff/MimeTypeMap
Getting Git version info
Deleting the contents of '/home/runner/work/MimeTypeMap/MimeTypeMap'
Initializing the repository
Disabling automatic garbage collection
Setting up auth
Fetching the repository
Determining the checkout info
Checking out the ref
/usr/bin/git log -1
commit 002592449518143aabfc0bdf3a4752ee2a779649
Author: Samuel Neff [email protected]
Date: Sun Jun 21 19:34:12 2020 -0400

Version bump to 1.0.5

publish on version change0s
INCLUDE_SYMBOLS: false
Run rohith/publish-nuget@v2
with:
PROJECT_FILE_PATH: src/MimeTypes/MimeTypes.csproj
VERSION_REGEX: (.)</Version>
TAG_COMMIT: true
TAG_FORMAT: v

NUGET_SOURCE: https://api.nuget.org
INCLUDE_SYMBOLS: false
Project Filepath: src/MimeTypes/MimeTypes.csproj
Version Filepath: src/MimeTypes/MimeTypes.csproj
Version Regex: /(.*)</Version>/
Version: 1.0.5
Package Name: MimeTypes
Post Run actions/checkout@v20s
/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
Post job cleanup.
/usr/bin/git version
git version 2.26.2
/usr/bin/git config --local --name-only --get-regexp core.sshCommand
/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
http.https://github.com/.extraheader
/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
Complete job0s
Cleaning up orphan processes

[ASK] Is there any way to change publish nuget's version by tag

Describe the bug
https://github.com/karaoke-dev/osu-framework-font/blob/master/.github/workflows/release.yml
This is my setting.
I'm not sure is there any way to change publish NuGet version by tag in this action?

Failed Action Log URL (Required)
https://github.com/karaoke-dev/osu-framework-font/runs/1301281775?check_suite_focus=true

To Reproduce
Steps to reproduce the behavior:

  1. Create a tag named 2020.1024.0
  2. Push the tag to remote to trigger GitHub action.
  3. Created NuGet(osu.Karaoke.font.1.0.0.nupkg) not apply new version.

Expected Behavior
https://www.nuget.org/packages/osu.Framework.KaraokeFont/
Publish to nuget with tag name(e,g: osu.Karaoke.font.2020.1024.0.nupkg), not 1.0.0.

Environment:

  • Platform [e.g. Windows / Linux]
  • Action Version [e.g. v2.5.3]

Getting errors on publish task

I'm sorry but I don't understand what I'm missing:

Here is my task:

name: Publish NuGet
      uses: rohith/[email protected]
      with:
        # Filepath of the project to be packaged, relative to root of repository
        PROJECT_FILE_PATH: universal-silo/universal-silo.fsproj
        # Filepath containing version info, relative to root of repository. Defaults to `PROJECT_FILE_PATH` if not specified
        VERSION_FILE_PATH: # optional
        # Regex (with version in a capturing group) to extract the version from `VERSION_FILE_PATH`
        VERSION_REGEX: # optional, default is <Version>(.*)<\/Version>
        # Bypasses version resolution; useful for external providers like Nerdbank.GitVersioning
        VERSION_STATIC: # optional
        # Whether to create a tag when there's a version change
        TAG_COMMIT: # optional, default is true
        # Format of the tag, `*` is the placeholder for actual version
        TAG_FORMAT: # optional, default is v*
        # API key for the NuGet feed
        NUGET_KEY: # optional
        # NuGet package name, required when it's different from the project name
        PACKAGE_NAME: Orleans.Contrib.UniversalSilo

I've set the nuget key as a secret named NUGET_API_KEY in the project settings.

When the action is run, I get the result:

Run rohith/[email protected]
  with:
    PROJECT_FILE_PATH: universal-silo/universal-silo.fsproj
    PACKAGE_NAME: Orleans.Contrib.UniversalSilo
  env:
    DOTNET_ROOT: /opt/hostedtoolcache/dncs/3.1.101/x64
undefined:1
undefined
^

SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at new Action (/home/runner/work/_actions/rohith/publish-nuget/v2.2.0/index.js:12:32)
    at Object.<anonymous> (/home/runner/work/_actions/rohith/publish-nuget/v2.2.0/index.js:130:1)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
    at internal/main/run_main_module.js:17:11

[FEATURE] Picking up version from file name

For autoversioning, I am using a set up like

  <PropertyGroup>
    <Year>$([System.DateTime]::UtcNow.ToString("yy"))</Year>
    <Month>$([System.DateTime]::UtcNow.ToString("MM"))</Month>
    <Date>$([System.DateTime]::UtcNow.ToString("dd"))</Date>
    <Time>$([System.DateTime]::UtcNow.ToString("HHmm"))</Time>
    <Version>$(Year).$(Month).$(Date).$(Time)</Version>
  </PropertyGroup>

Therefore, the file created while packing has a file name Surrogate.20.8.4.2129.nupkg. As you can see, Version specified in .csproj does not follow SemVer, but instead, the value is evaluated on runtime. Can you pick up the value from published filename instead?

publish-nuget doesn't work

Hi Rohith,

I tried to follow setting this action up via the marketplace.

I get this error:

Download action repository 'rohith/publish-nuget@v1'
##[warning]Failed to download action 'https://api.github.com/repos/rohith/publish-nuget/tarball/v1'. Error Response status code does not indicate success: 404 (Not Found).
##[warning]Back off 26.063 seconds before retry.
##[warning]Failed to download action 'https://api.github.com/repos/rohith/publish-nuget/tarball/v1'. Error Response status code does not indicate success: 404 (Not Found).
##[warning]Back off 17.956 seconds before retry.
##[error]Response status code does not indicate success: 404 (Not Found).

Publish multiple projects

At the moment, I can only see a way to support a single project being published per repo (unless I was to change the version format for every package to avoid collisions).

Would it be possible to allow multiple project/package support? Or maybe just a way to disable the git tagging step for every project after the first one?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.