Join us for a look behind the curtain at GitHub Enterprise's new features, following its 2.10 release. Dive into an intermediate level auto-deployment scenario using GitHub, Node, Grunt, and Jenkins along with AWS Technologies including the AWS Command Line Interface, Lambda, Amazon S3, and Identity and Access Management.
Speaker: Daniel Figucio is the Director of Solutions Engineering, ASEAN and ANZ @ GitHub
Level: 200
1. the best way to build and ship software
GitHub Enterprise 2.10 Overview
Automating AWS Lambda Deployments with GitHub and
Jenkins
Daniel Figucio
Director, Solutions Engineering, APAC
August 30, 2017
2. the best way to build and ship software
GitHub Enterprise 2.10
Overview
3. the best way to build and ship software
End of Life updates
Version Release Date Deprecation Date
2.5.0 February 9, 2016 March 14, 2017
2.6.0 April 26, 2016 April 26, 2017
2.7.0 August 3, 2016 August 3, 2017
4. the best way to build and ship software
Enabling Developers
7. the best way to build and ship software
Improved Git Blame
8. the best way to build and ship software
•
Improved git blame
9. the best way to build and ship software
Filter PR Reviews and
Requests
10. the best way to build and ship software
•
Improved git blame
11. the best way to build and ship software
Restrict review dismissals via
Protected Branches
12. the best way to build and ship software
•
Improved git blame
13. the best way to build and ship software
Project Activity View
14. the best way to build and ship software
•
Improved git blame
15. the best way to build and ship software
Disable Projects
16. the best way to build and ship software
•
Improved git blame
17. the best way to build and ship software
Extending the GitHub
Platform
18. the best way to build and ship software
API v4 - GraphQL!
19. the best way to build and ship software
API v4 - GraphQL!
Scenario
• Want to get a list of:
• The name of each repository owned by The
SuperApps Organization
• The title of each Pull Request owned by each of
these repositories
20. the best way to build and ship software
•
Improved git blame
21. the best way to build and ship software
•
Improved git blame
22. the best way to build and ship software
•
Improved git blame
23. the best way to build and ship software
•
Improved git blame
24. the best way to build and ship software
API v3 updates
25. the best way to build and ship software
• Out of preview
• Merge methods API (rebase vs. squash, etc)
• PR Review API
• Repository Collaborators API
• New and in preview
• Protected Branches: Enforce on admins
New API endpoints
26. the best way to build and ship software
Webhook updates
27. the best way to build and ship software
New Projects Webhook
https://developer.github.com/changes/2017-01-24-project-webhooks/
28. the best way to build and ship software
Enabling Site
Administrators
29. the best way to build and ship software
LFS Server
30. the best way to build and ship software
Git LFS 2.0
https://github.com/blog/2328-git-lfs-2-0-0-released
31. the best way to build and ship software
LFS Server
• File Locking
• Supports git client functions for 2.1.x
• Improved transfer queue
• Better throughput and stability
32. the best way to build and ship software
Restrict Repo Deletion
33. the best way to build and ship software
•
Improved git blame
34. the best way to build and ship software
Disable Insecure
Cryptography
35. the best way to build and ship software
•
Disable Insecure Cryptography
https://githubengineering.com/crypto-deprecation-notice/
36. the best way to build and ship software
Automating AWS Lambda
Deployments with GitHub
and Jenkins
37. the best way to build and ship software
Assumptions
• Know how to use the AWS Command Line
Interface
• Knowledge of how to create:
• AWS Identity and Access Management Users,
Groups and Roles
• AWS Lambda Functions
• Amazon Simple Storage Service Buckets
• Awareness of Node and Grunt
38. the best way to build and ship software
Assumptions
The following is installed on your development
environment
• Node.js (Node 6.10.0)
• ImageMagick
• AWS CLI
39. the best way to build and ship software
Assumptions
• AWS User assumptions
• An appropriate IAM administrator user has been set up
up to allow us to programmatically update an AWS
Lambda function
• The Lambda function has been assigned a Role that
gives it permission to access S3 buckets
40. the best way to build and ship software
Create the AWS
Environment
41. the best way to build and ship software
Create S3 Buckets
61. the best way to build and ship software
Set up the Automated Build
Environment
62. the best way to build and ship software
Assumptions
Jenkins server has been set up with the following
plugins:
• AWS Lambda Plugin
• NodeJS Plugin
• GitHub Plugin
63. the best way to build and ship software
Configure Jenkins
64. the best way to build and ship software
Node JS Plugin Configuration
72. the best way to build and ship software
Now what?
73. the best way to build and ship software
Now what?
• Branching - with builds and deployments to Lambda
test environments
• Pull requests
• Code Review
• Protected Branches
• Publish your application as Open Source!
• Collaborate with others.
• And much more…
74. the best way to build and ship software
Now what?
GitHub Enterprise 2.10
• Release Notes
• https://enterprise.github.com/releases/series/2.10
75. the best way to build and ship software
Now what?
GitHub Enterprise 2.10
• GraphQL
• https://developer.github.com
• http://graphql.org
• https://www.youtube.com/watch?v=hT-4pVmkGt0
• https://www.youtube.com/watch?v=wPPFhcqGcvk
• https://services.github.com/on-demand/graphql/
76. the best way to build and ship software
Now what?
GitHub, Jenkins and AWS Lambda
• GitHub
• https://help.github.com/enterprise/admin/guides/install
ation/installing-github-enterprise-on-aws/
• https://help.github.com/enterprise/2.10/admin/guides/d
eveloper-workflow/continuous-integration-using-
jenkins/
77. the best way to build and ship software
Now what?
GitHub, Jenkins and AWS Lambda
• Node.js
• https://nodejs.org/en/download/
• ImageMagick
• http://www.imagemagick.org/script/index.php
• AWS CLI
• http://docs.aws.amazon.com/cli/latest/userguide/installing.
html
78. the best way to build and ship software
Now what?
GitHub, Jenkins and AWS Lambda
• Jenkins
• http://jenkins.io
• https://jenkins.io/doc/book/getting-started/
• Lambda
• https://aws.amazon.com/lambda/
• https://aws.amazon.com/lambda/getting-started
79. the best way to build and ship software
https://government.github.com/
80. the best way to build and ship software
GitHub and Government
GitHub and Government