xpirit-vsts-release-terraform's People
Forkers
antigithubcrap tevert mud5150 simonsabin vijayraavi danhyrjak raul-arrieta stimms maximbaz felixboers devkylesxpirit-vsts-release-terraform's Issues
Additionnal arguments prevent from using terrafom fmt
Hi,
I'm starting using your Terraform plugin is VSTS, and the first step I wanted in my CICD was to validate terraform syntaxt for my folder. To do so I want to use the terraform fmt
command.
But when I do configure a task tor validate format, the task always fails because the fmt
command doesn't accept the -input=false -no-color
arguments that are added automatically to the terraform call.
Here's a yaml snipet of the task to help you reproduce
steps:
- task: petergroenewegen.PeterGroenewegen-Xpirit-Vsts-Release-Terraform.Xpirit-Vsts-Release-Terraform.Terraform@2
displayName: Terraform Format
inputs:
TemplatePath: .
Arguments: 'fmt -check=false .'
InstallTerraform: true
continueOnError: true
And here's the output
2018-07-18T13:10:41.2433107Z ##[section]Starting: Terraform Format
2018-07-18T13:10:41.2653002Z ==============================================================================
2018-07-18T13:10:41.2653184Z Task : Run Terraform
2018-07-18T13:10:41.2653309Z Description : Run a Terraform on the build agent
2018-07-18T13:10:41.2653449Z Version : 2.0.3
2018-07-18T13:10:41.2653566Z Author : Peter Groenewegen - Xpirit
2018-07-18T13:10:41.2653726Z Help : [More Information](https://pgroene.wordpress.com/2016/06/14/getting-started-with-terraform-on-windows-and-azure/)
2018-07-18T13:10:41.2653912Z ==============================================================================
2018-07-18T13:10:59.3238992Z
2018-07-18T13:10:59.3290047Z
2018-07-18T13:10:59.3308826Z Directory: C:\
2018-07-18T13:10:59.3309002Z
2018-07-18T13:10:59.3309063Z
2018-07-18T13:10:59.3309212Z Mode LastWriteTime Length Name
2018-07-18T13:10:59.3309438Z ---- ------------- ------ ----
2018-07-18T13:10:59.3327353Z d----- 7/18/2018 1:10 PM terraform-download
2018-07-18T13:11:00.4181041Z Terraform version:
2018-07-18T13:11:01.1324002Z Terraform v0.11.7
2018-07-18T13:11:01.1325703Z
2018-07-18T13:11:02.3661837Z ##[command]"terraform" fmt -check=false . -input=false -no-color
2018-07-18T13:11:02.4635594Z The fmt command expects at most one argument.
2018-07-18T13:11:02.4636107Z Usage: terraform fmt [options] [DIR]
2018-07-18T13:11:02.4638924Z
2018-07-18T13:11:02.4644368Z Rewrites all Terraform configuration files to a canonical format.
2018-07-18T13:11:02.4644526Z
2018-07-18T13:11:02.4644657Z If DIR is not specified then the current working directory will be used.
2018-07-18T13:11:02.4644805Z If DIR is "-" then content will be read from STDIN.
2018-07-18T13:11:02.4644906Z
2018-07-18T13:11:02.4645015Z Options:
2018-07-18T13:11:02.4645081Z
2018-07-18T13:11:02.4659792Z -list=true List files whose formatting differs (always false if using STDIN)
2018-07-18T13:11:02.4660515Z
2018-07-18T13:11:02.4661834Z -write=true Write result to source file instead of STDOUT (always false if using STDIN or -check)
2018-07-18T13:11:02.4662159Z
2018-07-18T13:11:02.4663024Z -diff=false Display diffs of formatting changes
2018-07-18T13:11:02.4663315Z
2018-07-18T13:11:02.4664150Z -check=false Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.
2018-07-18T13:11:02.4861805Z ##[error] Terraform failed to execute. Error:
2018-07-18T13:11:02.4885979Z End of Task Terraform
2018-07-18T13:11:02.4886095Z
2018-07-18T13:11:02.4886150Z
2018-07-18T13:11:02.4980310Z ##[section]Finishing: Terraform Format
Thx in advance.
Specify path for terraform executable
We are converting from terraform 0.11.x to 0.12.x. I'd like to be able to supply the path for terraform.exe and I think I could add this to the task.json and the PowerShell for the task, but I am not familiar with testing an ADO extension. If you don't have time to make the addition can you point me to something the would help me test?
Any plan to create a Terragrunt equivalent?
If not, I would like to give it a shot, and would be grateful for any pointer to the learning material you made use of when developing this one...
Thanks guys
##[error]You cannot call a method on a null-valued expression.
When running Terraform task, an error is received.
Terraform have changed the response from https://releases.hashicorp.com/terraform/
hashicorp/terraform#31024
State not being saved in Azure Storage blob container
When using the version 2.* of your VSTS Task from the VSTS marketplace, after running an "apply" command the Terraform state is not being stored in the specified Azure Storages Account. Attached is a screenshot of the configuration. Version 1.* I was able to get the "apply" command to store the state in the storage account. Any help or insights on this issue would be appreciated.
failed to run mklink 0138ec1e944834bd15a89b423e8cee89 databases: exec: "cmd": executable file not found in %PATH%
Hi,
I have used this extension in the past for a simple deployment where everything is in the same folder and it works will. However, I'm now trying to refactor our changes to start using modules to make our terraform setup more usable.
I've got this terraform setup: https://github.com/ossentoo/terraform-sql
When I use this configuration to deploy a sql and database by running it locally - it works as expected.
However, when I use the Terraform vsts task to try and initialise it, I get an error:
exec: "cmd": executable file not found in %PATH% ""
Here's the full debugging output from VSTS:
2019-05-15T11:24:37.4198114Z ==============================================================================
2019-05-15T11:24:37.4198243Z Task : Run Terraform
2019-05-15T11:24:37.4198296Z Description : Run a Terraform on the build agent
2019-05-15T11:24:37.4198348Z Version : 2.1.0
2019-05-15T11:24:37.4198421Z Author : Peter Groenewegen - Xpirit
2019-05-15T11:24:37.4198469Z Help : More Information
2019-05-15T11:24:37.4198518Z ==============================================================================
2019-05-15T11:24:39.4956007Z ##[debug]VstsTaskSdk 0.6.2 commit b4160c33da0010bd83279e9ffa9bbf13bcbd1ce2
2019-05-15T11:24:39.6172033Z ##[debug]Entering D:\vsts-agent_work_tasks\Terraform_31f040e5-e040-4336-878a-59a493289794\2.1.0\Terraform.ps1.
2019-05-15T11:24:39.6364389Z ##[debug]Importing from Public
2019-05-15T11:24:39.6670175Z ##[debug] Importing Ensure-AzStorageContainerExists
2019-05-15T11:24:39.6820526Z ##[debug] Importing Import-EnvVars
2019-05-15T11:24:39.7156057Z ##[debug]Env:INPUT_TEMPLATEPATH: 'D:\vsts-agent_work\r24\a\terraform-sql\subscriptions'
2019-05-15T11:24:39.7231032Z ##[debug]Env:INPUT_INSTALLTERRAFORM: 'true'
2019-05-15T11:24:39.7282980Z ##[debug] Converted to bool: True
2019-05-15T11:24:39.7328610Z ##[debug]Env:INPUT_USEAZURESUB: 'false'
2019-05-15T11:24:39.7365534Z ##[debug] Converted to bool: False
2019-05-15T11:24:39.7425368Z ##[debug]Env:INPUT_MANAGESTATE: 'true'
2019-05-15T11:24:39.7460873Z ##[debug] Converted to bool: True
2019-05-15T11:24:39.7506523Z ##[debug]Env:INPUT_SPECIFYSTORAGEACCOUNT: 'true'
2019-05-15T11:24:39.7542117Z ##[debug] Converted to bool: True
2019-05-15T11:24:39.7785810Z ##[debug]Env:INPUT_VERSION: 'latest'
2019-05-15T11:24:39.8030029Z ##[debug]GET https://releases.hashicorp.com/terraform/ with 0-byte payload
2019-05-15T11:24:39.9127362Z ##[debug]received 8427-byte response of content type text/html
2019-05-15T11:24:40.1292053Z ##[debug]GET https://releases.hashicorp.com/terraform/0.11.13/terraform_0.11.13_windows_amd64.zip with 0-byte payload
2019-05-15T11:24:40.1469299Z ##[debug]received 21163715-byte response of content type application/zip
2019-05-15T11:25:46.8126212Z Terraform version:
2019-05-15T11:25:48.5556480Z Terraform v0.11.13
2019-05-15T11:25:48.5565744Z
2019-05-15T11:25:48.6417897Z ##[debug]Env:INPUT_ARGUMENTS: 'init'
2019-05-15T11:25:48.6460010Z ##[debug]Env:INPUT_PLANPATH: 'D:\vsts-agent_work\r24\a\terraform-sql\subscriptions'
2019-05-15T11:25:48.6882219Z ##[debug]Entering Invoke-VstsTool.
2019-05-15T11:25:48.7086591Z ##[debug] FileName: 'terraform'
2019-05-15T11:25:48.7120912Z ##[debug] Arguments: 'init -input=false -no-color D:\vsts-agent_work\r24\a\terraform-sql\subscriptions'
2019-05-15T11:25:48.7181113Z ##[command]"terraform" init -input=false -no-color D:\vsts-agent_work\r24\a\terraform-sql\subscriptions
2019-05-15T11:25:48.8893071Z Initializing modules...
2019-05-15T11:25:48.8895339Z - module.xperters-dev
2019-05-15T11:25:48.8916284Z Getting source "../environments/dev/databases"
2019-05-15T11:25:48.8938721Z Error downloading modules: Error loading modules: error downloading 'file://D:/vsts-agent/_work/r24/a/terraform-sql/environments/dev/databases': failed to run mklink .terraform\modules\0138ec1e944834bd15a89b423e8cee89 D:\vsts-agent_work\r24\a\terraform-sql\environments\dev\databases: exec: "cmd": executable file not found in %PATH% ""
2019-05-15T11:25:48.9787956Z ##[debug]Exit code: 1
2019-05-15T11:25:48.9830389Z ##[debug]Leaving Invoke-VstsTool.
Note that I am running terraform init not within the root folder of the repo, but within the subscriptions folder as we will probably end up having multiple subscription configurations that we want to deploy to.
Is there something wrong with the way I am using the task, or something wrong with the task?
Parsing module source link
I'm trying to use module source link to Git repository referencing the module in the ExampleModule subdirectory.
Code example:
module "example-module" { source = "git::https://[email protected]/eg/_git/eg//ExampleModule?ref=master" }
The source link gets trunctated to "git::https://[email protected]/eg/_git/eg?ref=master" basically removing the double slash and the string after it.
Double slash is mandatory in order to specify the subdirectory of the module.
When using a single slash, the line is not truncated but terraform fails to find the folder.
Is this a parsing bug?
Issue with local-exec - az login required
Having issue with running az cli script using local-exec provisioner.
Receive next error:
ERROR: Please run 'az login' to setup account
I'm running terraform using VSTS task - https://marketplace.visualstudio.com/items?itemName=petergroenewegen.PeterGroenewegen-Xpirit-Vsts-Release-Terraform
Every other(terraform native) resources are successfully created.
Is there any possibility to run azure cli using local-exec without logging in?
As account is already specified in VSTS task - it seems obvious for me, that command should run in context of that account.
Validate against 0.12 fails
The default arguments for validate have changed in 0.12 and it no longer allows -input=false -no-color
. This results in the error message
Usage: terraform validate [options] [dir]
Validate the configuration files in a directory, referring only to the
configuration and not accessing any remote services such as remote state,
provider APIs, etc.
Validate runs checks that verify whether a configuration is
internally-consistent, regardless of any provided variables or existing
state. It is thus primarily useful for general verification of reusable
modules, including correctness of attribute names and value types.
It is safe to run this command automatically, for example as a post-save
check in a text editor or as a test step for a re-usable module in a CI
system.
Validation requires an initialized working directory with any referenced
plugins and modules installed. To initialize a working directory for
validation without accessing any configured remote backend, use:
terraform init -backend=false
If dir is not specified, then the current directory will be used.
To verify configuration in the context of a particular run (a particular
target workspace, operation variables, etc), use the terraform plan
subcommand instead, which includes an implied validation check.
Options:
-json Produce output in a machine-readable JSON format, suitable for
use in e.g. text editor integrations.
The terraform error does not propagate to the logging of the task when using the yaml pipeline
Peter, thanks a lot for the work you did to create this Terraform pipeline task. I hope you can help me. Recently I tried to implement it as a yaml task, which works just fine. However when Terraform gives an error, this error does not propagate to the logging of the task.
A example of the output (in case of an error) is:
Terraform version:
Terraform v0.12.18
"terraform" init [parameters removed for clarity]"
Initializing the backend...
Finishing: Terraform plan
Support for DevOps Environment Variables
I combine terraform and some other scripts in one DevOps Release Pipeline.
I need the same variables in Terraform and other scripts that are executed by other tasks.
So I try to use environment variables to set the Terraform input variables.
I set the environment variables in a prior task.
Example:
$ export TF_VAR_image_id=ami-abc123
https://www.terraform.io/docs/configuration/variables.html
Usually this works across tasks within one pipeline:
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#set-in-script
But this variable is not recognized by Terraform when executed with your DevOps task.
How to specify a workspace
Hi,
Is there a way to specify a workspace when running the task?
Thanks,
Mike
Required ConnectedServiceNameARM configuration
When the option "Manage state in blobstorage" is not selected, terraforming fails with ##[error]Required: 'ConnectedServiceNameARM' input.
PR: #1
PlanPath is a file, not a directory
This commit is producing these results for me. Was working fine yesterday.
==============================================================================
Task : Run Terraform
Description : Run a Terraform on the build agent
Version : 2.3.0
Author : Peter Groenewegen - Xpirit
Help : [More Information](https://pgroene.wordpress.com/2016/06/14/getting-started-with-terraform-on-windows-and-azure/)
==============================================================================
##[command]"terraform" init -backend-config="arm_subscription_id=7e1cf280-dbdc-4385-ab1e-ef119ad40d9b" -backend-config="arm_tenant_id=***" -backend-config="arm_client_id=***" -backend-config="arm_client_secret=***" -backend-config="resource_group_name=landmark-int-lp-usc-rg-terraform-01" -backend-config="storage_account_name=lmintlpusctf01" -backend-config="container_name=terraform-state-client-landmark-int-lp-01" -backend=true -get=true -get-plugins=true -input=false -no-color D:\a\r1\a\_client\tfplan
##[error] Terraform init failed to execute. Error:
Error checking configuration: configuration path must be a directory: D:\a\r1\a\_client\tfplan
Tainting does not work
Hi,
I store my state in an azure storage container, and when I run the command terraform taint -state "statename.tfstate" -state-out "statename.tfstate" "azurerm_virtual_machine_extension.azw-dsc"
the arguments -input=false -no-color
are appended (from looking at the powershell source). This causes terraform to throw the error The taint command expects exactly one argument.
Is there another way I can run the taint command or disable the input=false
arg for it? It doesnt look like taint supports it.
Thanks
No longer working on Ubuntu Build Agents
Hi, up until recently this was working fine on the ubuntu build agents, however it is now failing with an error saying that the task can only run on Windows build agents, and it seems to possibly add a demand for "azureps".
Have had to resort to bash script and running all the terraform stuff from there. Your module makes life a lot easier.
Correct path environment variable lost across tasks
Hi
The installation function adds the terraform install directory to the PATH environment variable but if you don't have "install terraform" ticked on each task then terraform cannot be found as the PATH process environment variable doesn't persist across tasks (I'm assuming each task is a different process or child process of the parent so any environment variables set are lost). So my presumption is that if Install is not true then the path variable needs to be set anyway.
Regards
James
"Manage state in blobstorage" is always true
When extracting this parameter in powershell, you need to use the -AsBool
switch, otherwise it's pulled in as a string and always evaluates to true. This causes complaints about required parameters that aren't even visible.
adding planpath to init breaks current usages of the task
Reported by: L.R by email
Plugin version 2.3.2 is broken.
It’s not possible to deploy from an execution plan where the terraform code and execution plans are in separate folders. This used to work before.
Previously (plugin version ~2.2.1) the init command used to look like this:
"terraform" init -backend-config="arm_subscription_id=xxxxxxx" -backend-config="arm_tenant_id=" -backend-config="arm_client_id=" -backend-config="arm_client_secret=***" -backend-config="resource_group_name=.tf” -backend-config="storage_account_name=tfdata" -backend-config="container_name=tfstate " -backend-config="key=infra.terraform.tfstate" -input=false -no-color
However, in the latest version, the TFPLAN folder path is appended to the init command for some reason. This breaks the init.
"terraform" init -backend-config="arm_subscription_id= xxxxxxx " -backend-config="arm_tenant_id=" -backend-config="arm_client_id=" -backend-config="arm_client_secret=***" -backend-config="resource_group_name=.tf” -backend-config="storage_account_name=tfdata" -backend-config="container_name=tfstate " -backend-config="key= infra.terraform.tfstate" -input=false -no-color D:\a\r1\a_tfrepo\tfplan
The terraform apply command looks good but it will fail because it was initialised in the wrong folder.
"terraform" apply -auto-approve -input=false -no-color ../tfplan/someplan.tfplan
The settings are the following:
We have the following folder structure:
repo/terraform/*.tf
repo/tfplan/myplan.tfplan
repo/tfvars/*.tfvars
Provide a variable for turning off -input=false
I see in the code that -input=false is turned off for validate
and workspace
but in my case I need it removed so I can call terraform output
. Rather than adding all commands that don't take input, can we just have a flag variable that allows us to turn it off?
Why is "Blob Container Name" required when not using blobstorage shared state?
Parameter in question:
I'm guessing it's supposed to have "visibleRule": "ManageState == true"
same as the others.
Cannot run import: The import command expects two arguments.
We keep running into an issue where we try to import but hit this issue: "The import command expects two arguments."
And the error looks like:
Been banging my head for a few days - tried to write the powershell from scratch but I believe we can use yours - just the arguments dont seem to be working?
TF_LOG = DEBUG causes task to fail from [INFO] lines being logged
Setting the environment variable TF_LOG to DEBUG is causing the task to fail (when it previously did not). Azure DevOps is saying the failing line is the first line with [INFO]. Please see the output below:
2019-08-02T13:54:07.4782972Z ##[section]Starting: Terraform init
2019-08-02T13:54:07.4893369Z ==============================================================================
2019-08-02T13:54:07.4893495Z Task : Run Terraform
2019-08-02T13:54:07.4893582Z Description : Run a Terraform on the build agent
2019-08-02T13:54:07.4893653Z Version : 2.4.0
2019-08-02T13:54:07.4893734Z Author : Peter Groenewegen - Xpirit
2019-08-02T13:54:07.4893844Z Help : [More Information](https://pgroene.wordpress.com/2016/06/14/getting-started-with-terraform-on-windows-and-azure/)
2019-08-02T13:54:07.4894094Z ==============================================================================
2019-08-02T13:54:36.8165732Z
2019-08-02T13:54:36.8166228Z
2019-08-02T13:54:36.8166359Z Directory: C:\
2019-08-02T13:54:36.8166443Z
2019-08-02T13:54:36.8166488Z
2019-08-02T13:54:36.8170274Z Mode LastWriteTime Length Name
2019-08-02T13:54:36.8173426Z ---- ------------- ------ ----
2019-08-02T13:54:36.8178672Z d----- 8/2/2019 1:54 PM terraform-download
2019-08-02T13:54:37.5277308Z Terraform version:
2019-08-02T13:54:38.3989163Z 2019/08/02 13:54:38 [INFO] Terraform version: 0.12.6
2019-08-02T13:54:38.3990010Z 2019/08/02 13:54:38 [INFO] Go runtime version: go1.12.4
2019-08-02T13:54:38.3990408Z 2019/08/02 13:54:38 [INFO] CLI args: []string{"c:\\terraform-download\\terraform.exe", "--version"}
2019-08-02T13:54:38.3992100Z 2019/08/02 13:54:38 [DEBUG] Attempting to open CLI config file: C:\Users\VssAdministrator\AppData\Roaming\terraform.rc
2019-08-02T13:54:38.3992873Z 2019/08/02 13:54:38 [DEBUG] File doesn't exist, but doesn't need to. Ignoring.
2019-08-02T13:54:38.4004470Z 2019/08/02 13:54:38 [INFO] CLI command args: []string{"version", "--version"}
2019-08-02T13:54:38.4004741Z Terraform v0.12.6
2019-08-02T13:54:38.4007016Z 2019/08/02 13:54:38 [DEBUG] checking for provider in "."
2019-08-02T13:54:38.4008672Z 2019/08/02 13:54:38 [DEBUG] checking for provider in "c:\\terraform-download"
2019-08-02T13:54:38.4009337Z 2019/08/02 13:54:38 [INFO] Failed to read plugin lock file .terraform\plugins\windows_amd64\lock.json: open .terraform\plugins\windows_amd64\lock.json: The system cannot find the path specified.
2019-08-02T13:54:40.1228245Z ##[command]"terraform" init -input=false -no-color
2019-08-02T13:54:40.5731063Z ##[error]2019/08/02 13:54:40 [INFO] Terraform version: 0.12.6
2019-08-02T13:54:41.8983073Z ##[section]Finishing: Terraform init
Incorrect orther for "-input=false -no-color" arguments
Hi,
First of all, thank you for creating this task. To have the ability to install Terraform in the hosted agents is awesome!
There is an issue with the "-input=false -no-color" arguments that are being added to the terraform command. Right now, I think it is not possible to apply a terraform plan. Let check the command:
$ terraform apply -h
Usage: terraform apply [options] [DIR-OR-PLAN]
[...]
As you can see, the path to the plan to be executed should be at the end of the command line. But in the following line you are adding those arguments always at the end:
When I want to execute terraform apply my.plan
I add apply my.plan
to the "Terraform arguments" field of the task, but what is actually being executed is terraform apply my.plan -input=false -no-color
which throws an error. The proper unnatended command should be: terraform apply -input=false -no-color my.plan
. You can check the error in the following log:
2018-04-17T18:19:02.6849925Z Terraform has been successfully initialized!
2018-04-17T18:19:02.6850121Z
2018-04-17T18:19:02.6860217Z You may now begin working with Terraform. Try running "terraform plan" to see
2018-04-17T18:19:02.6862604Z any changes that are required for your infrastructure. All Terraform commands
2018-04-17T18:19:02.6866497Z should now work.
2018-04-17T18:19:02.6866705Z
2018-04-17T18:19:02.6866978Z If you ever set or change modules or backend configuration for Terraform,
2018-04-17T18:19:02.6867431Z rerun this command to reinitialize your working directory. If you forget, other
2018-04-17T18:19:02.6875019Z commands will detect it and remind you to do so if necessary.
2018-04-17T18:19:03.0430209Z ##[command]"terraform" apply my.plan -input=false -no-color
2018-04-17T18:19:03.1192031Z Too many command line arguments. Configuration path expected.
2018-04-17T18:19:03.1336529Z ##[error] Terraform failed to execute. Error:
2018-04-17T18:19:03.1348318Z End of Task Terraform
The only solution for this that I can think right now is to create a new field for arguments after options or to add the ability to ignore those extra arguments (being the user responsible of adding them on the command line).
What do you think?
Let me know also if I'm wrong and there is a way to do it but I missed it.
Blob storage state
Just getting started with integrating terraform into our CI workflow. Was glad to find your extension so thanks!
As I'm starting to work with this I have a few questions that could be me not understanding the process or perhaps they could be enhancements. I would be glad to put in pull requests for any of these if you agree with the concepts.
Firstly I was wondering about the decision to "manually" handle the state with azure blob storage rather than use terraform's built in mechanism for using azure blob storage.
For our projects we have the remote backend config in the repository in order to run plan locally. I expect this to conflict with the "manage state" option. I do really like that it allows you to use a service endpoint. One idea I had, since you're already using convention for the state file name, is you could potentially pass in the parameters to init to override what's in the repositories backend config with the tfs endpoint data. This would also have the benefit of the native locking that terraform provides.
Let me know what you think. Thanks!
Cannot find path
I have a build agent on a Windows VM. Running the plan command gives an error that it cannot find path C:\agent_work\1\s<myFolder><myFileName.tf>. When I go to my actual server that file is in that path. Beyond getting my source, this is my only task.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.