codepipeline 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +16 -11
  3. data/.gitmodules +9 -0
  4. data/.rspec +1 -1
  5. data/CHANGELOG.md +16 -0
  6. data/Gemfile +3 -1
  7. data/Gemfile.lock +111 -0
  8. data/Guardfile +19 -0
  9. data/LICENSE.txt +18 -17
  10. data/README.md +44 -20
  11. data/Rakefile +10 -2
  12. data/codepipe.gemspec +38 -0
  13. data/docs/.gitignore +4 -0
  14. data/docs/CNAME +1 -0
  15. data/docs/Gemfile +3 -0
  16. data/docs/LICENSE +21 -0
  17. data/docs/README.md +25 -0
  18. data/docs/_config.yml +73 -0
  19. data/docs/_docs/contributing.md +99 -0
  20. data/docs/_docs/conventions.md +43 -0
  21. data/docs/_docs/deploy.md +72 -0
  22. data/docs/_docs/dsl.md +13 -0
  23. data/docs/_docs/dsl/approve.md +62 -0
  24. data/docs/_docs/dsl/pipeline.md +56 -0
  25. data/docs/_docs/dsl/pipeline/action.md +28 -0
  26. data/docs/_docs/dsl/pipeline/codebuild.md +62 -0
  27. data/docs/_docs/dsl/pipeline/prefix-and-suffix.md +57 -0
  28. data/docs/_docs/dsl/role.md +79 -0
  29. data/docs/_docs/dsl/schedule.md +29 -0
  30. data/docs/_docs/dsl/sns.md +27 -0
  31. data/docs/_docs/dsl/webhook.md +31 -0
  32. data/docs/_docs/ecs-deploy.md +24 -0
  33. data/docs/_docs/examples/different-branches.md +50 -0
  34. data/docs/_docs/install.md +14 -0
  35. data/docs/_docs/next-steps.md +16 -0
  36. data/docs/_docs/settings.md +34 -0
  37. data/docs/_docs/start.md +31 -0
  38. data/docs/_includes/commands.html +92 -0
  39. data/docs/_includes/content.html +25 -0
  40. data/docs/_includes/edit-on-github.html +9 -0
  41. data/docs/_includes/footer.html +41 -0
  42. data/docs/_includes/google_analytics.html +10 -0
  43. data/docs/_includes/head.html +45 -0
  44. data/docs/_includes/js.html +15 -0
  45. data/docs/_includes/nav.html +17 -0
  46. data/docs/_includes/prev_next.md +19 -0
  47. data/docs/_includes/reference.md +1 -0
  48. data/docs/_includes/subnav.html +46 -0
  49. data/docs/_includes/tutorials.md +38 -0
  50. data/docs/_layouts/default.html +12 -0
  51. data/docs/_reference/pipe-completion.md +44 -0
  52. data/docs/_reference/pipe-completion_script.md +25 -0
  53. data/docs/_reference/pipe-delete.md +25 -0
  54. data/docs/_reference/pipe-deploy.md +26 -0
  55. data/docs/_reference/pipe-init.md +25 -0
  56. data/docs/_reference/pipe-start.md +25 -0
  57. data/docs/_reference/pipe-version.md +21 -0
  58. data/docs/_sass/_bootstrap-overrides.scss +40 -0
  59. data/docs/_sass/_contact.scss +49 -0
  60. data/docs/_sass/_cta.scss +37 -0
  61. data/docs/_sass/_download.scss +31 -0
  62. data/docs/_sass/_features.scss +47 -0
  63. data/docs/_sass/_footer.scss +49 -0
  64. data/docs/_sass/_global.scss +102 -0
  65. data/docs/_sass/_main.scss +364 -0
  66. data/docs/_sass/_masthead.scss +70 -0
  67. data/docs/_sass/_mixins.scss +79 -0
  68. data/docs/_sass/_navbar.scss +92 -0
  69. data/docs/_sass/_syntax.scss +65 -0
  70. data/docs/_sass/_table.scss +34 -0
  71. data/docs/_sass/_timeline.scss +207 -0
  72. data/docs/_sass/_variables.scss +24 -0
  73. data/docs/bin/web +8 -0
  74. data/docs/docs.md +24 -0
  75. data/docs/dsl/pipeline.md +76 -0
  76. data/docs/dsl/role.md +66 -0
  77. data/docs/dsl/schedule.md +20 -0
  78. data/docs/img/docs/codepipeline-output.png +0 -0
  79. data/docs/img/logos/boltops-logo-full.png +0 -0
  80. data/docs/img/logos/boltops-logo.png +0 -0
  81. data/docs/img/logos/project-logo.png +0 -0
  82. data/docs/index.html +35 -0
  83. data/docs/js/nav.js +39 -0
  84. data/docs/js/new-age.js +38 -0
  85. data/docs/js/new-age.min.js +6 -0
  86. data/docs/new-age.scss +20 -0
  87. data/docs/quick-start.md +73 -0
  88. data/docs/reference.md +12 -0
  89. data/docs/support.md +22 -0
  90. data/docs/vendor/bootstrap/css/bootstrap-grid.css +1339 -0
  91. data/docs/vendor/bootstrap/css/bootstrap-grid.css.map +1 -0
  92. data/docs/vendor/bootstrap/css/bootstrap-grid.min.css +1 -0
  93. data/docs/vendor/bootstrap/css/bootstrap-grid.min.css.map +1 -0
  94. data/docs/vendor/bootstrap/css/bootstrap-reboot.css +459 -0
  95. data/docs/vendor/bootstrap/css/bootstrap-reboot.css.map +1 -0
  96. data/docs/vendor/bootstrap/css/bootstrap-reboot.min.css +1 -0
  97. data/docs/vendor/bootstrap/css/bootstrap-reboot.min.css.map +1 -0
  98. data/docs/vendor/bootstrap/css/bootstrap.css +9320 -0
  99. data/docs/vendor/bootstrap/css/bootstrap.css.map +1 -0
  100. data/docs/vendor/bootstrap/css/bootstrap.min.css +6 -0
  101. data/docs/vendor/bootstrap/css/bootstrap.min.css.map +1 -0
  102. data/docs/vendor/bootstrap/js/bootstrap.js +3535 -0
  103. data/docs/vendor/bootstrap/js/bootstrap.min.js +7 -0
  104. data/docs/vendor/font-awesome/css/font-awesome.css +2337 -0
  105. data/docs/vendor/font-awesome/css/font-awesome.min.css +4 -0
  106. data/docs/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  107. data/docs/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  108. data/docs/vendor/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  109. data/docs/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  110. data/docs/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  111. data/docs/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  112. data/docs/vendor/font-awesome/less/animated.less +34 -0
  113. data/docs/vendor/font-awesome/less/bordered-pulled.less +25 -0
  114. data/docs/vendor/font-awesome/less/core.less +12 -0
  115. data/docs/vendor/font-awesome/less/fixed-width.less +6 -0
  116. data/docs/vendor/font-awesome/less/font-awesome.less +18 -0
  117. data/docs/vendor/font-awesome/less/icons.less +789 -0
  118. data/docs/vendor/font-awesome/less/larger.less +13 -0
  119. data/docs/vendor/font-awesome/less/list.less +19 -0
  120. data/docs/vendor/font-awesome/less/mixins.less +60 -0
  121. data/docs/vendor/font-awesome/less/path.less +15 -0
  122. data/docs/vendor/font-awesome/less/rotated-flipped.less +20 -0
  123. data/docs/vendor/font-awesome/less/screen-reader.less +5 -0
  124. data/docs/vendor/font-awesome/less/stacked.less +20 -0
  125. data/docs/vendor/font-awesome/less/variables.less +799 -0
  126. data/docs/vendor/font-awesome/scss/_animated.scss +34 -0
  127. data/docs/vendor/font-awesome/scss/_bordered-pulled.scss +25 -0
  128. data/docs/vendor/font-awesome/scss/_core.scss +12 -0
  129. data/docs/vendor/font-awesome/scss/_fixed-width.scss +6 -0
  130. data/docs/vendor/font-awesome/scss/_icons.scss +789 -0
  131. data/docs/vendor/font-awesome/scss/_larger.scss +13 -0
  132. data/docs/vendor/font-awesome/scss/_list.scss +19 -0
  133. data/docs/vendor/font-awesome/scss/_mixins.scss +60 -0
  134. data/docs/vendor/font-awesome/scss/_path.scss +15 -0
  135. data/docs/vendor/font-awesome/scss/_rotated-flipped.scss +20 -0
  136. data/docs/vendor/font-awesome/scss/_screen-reader.scss +5 -0
  137. data/docs/vendor/font-awesome/scss/_stacked.scss +20 -0
  138. data/docs/vendor/font-awesome/scss/_variables.scss +799 -0
  139. data/docs/vendor/font-awesome/scss/font-awesome.scss +18 -0
  140. data/docs/vendor/jquery-easing/jquery.easing.compatibility.js +59 -0
  141. data/docs/vendor/jquery-easing/jquery.easing.js +166 -0
  142. data/docs/vendor/jquery-easing/jquery.easing.min.js +1 -0
  143. data/docs/vendor/jquery/jquery.js +10253 -0
  144. data/docs/vendor/jquery/jquery.min.js +4 -0
  145. data/docs/vendor/simple-line-icons/css/simple-line-icons.css +778 -0
  146. data/docs/vendor/simple-line-icons/fonts/Simple-Line-Icons.eot +0 -0
  147. data/docs/vendor/simple-line-icons/fonts/Simple-Line-Icons.svg +200 -0
  148. data/docs/vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf +0 -0
  149. data/docs/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff +0 -0
  150. data/docs/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2 +0 -0
  151. data/docs/vendor/simple-line-icons/less/simple-line-icons.less +982 -0
  152. data/docs/vendor/simple-line-icons/scss/simple-line-icons.scss +979 -0
  153. data/docs/vendor/tether/tether.js +1811 -0
  154. data/docs/vendor/tether/tether.min.js +1 -0
  155. data/exe/codepipeline +14 -0
  156. data/exe/pipe +14 -0
  157. data/lib/codepipe.rb +23 -0
  158. data/lib/codepipe/autoloader.rb +21 -0
  159. data/lib/codepipe/aws_services.rb +20 -0
  160. data/lib/codepipe/aws_services/helpers.rb +71 -0
  161. data/lib/codepipe/build.rb +13 -0
  162. data/lib/codepipe/cli.rb +60 -0
  163. data/lib/codepipe/command.rb +82 -0
  164. data/lib/codepipe/completer.rb +159 -0
  165. data/lib/codepipe/completer/script.rb +6 -0
  166. data/lib/codepipe/completer/script.sh +10 -0
  167. data/lib/codepipe/core.rb +63 -0
  168. data/lib/codepipe/create.rb +12 -0
  169. data/lib/codepipe/delete.rb +27 -0
  170. data/lib/codepipe/deploy.rb +40 -0
  171. data/lib/codepipe/dsl/pipeline.rb +37 -0
  172. data/lib/codepipe/dsl/pipeline/approve.rb +34 -0
  173. data/lib/codepipe/dsl/pipeline/codebuild.rb +57 -0
  174. data/lib/codepipe/dsl/pipeline/github.rb +36 -0
  175. data/lib/codepipe/dsl/role.rb +50 -0
  176. data/lib/codepipe/dsl/schedule.rb +30 -0
  177. data/lib/codepipe/dsl/sns.rb +15 -0
  178. data/lib/codepipe/dsl/ssm.rb +22 -0
  179. data/lib/codepipe/dsl/webhook.rb +27 -0
  180. data/lib/codepipe/evaluate.rb +47 -0
  181. data/lib/codepipe/help.rb +9 -0
  182. data/lib/codepipe/help/completion.md +22 -0
  183. data/lib/codepipe/help/completion_script.md +3 -0
  184. data/lib/codepipe/help/hello.md +5 -0
  185. data/lib/codepipe/init.rb +57 -0
  186. data/lib/codepipe/pipeline.rb +61 -0
  187. data/lib/codepipe/pipeline/s3_bucket.rb +88 -0
  188. data/lib/codepipe/role.rb +181 -0
  189. data/lib/codepipe/schedule.rb +99 -0
  190. data/lib/codepipe/sequence.rb +66 -0
  191. data/lib/codepipe/setting.rb +79 -0
  192. data/lib/codepipe/sns.rb +43 -0
  193. data/lib/codepipe/stack.rb +95 -0
  194. data/lib/codepipe/start.rb +83 -0
  195. data/lib/codepipe/update.rb +12 -0
  196. data/lib/codepipe/version.rb +3 -0
  197. data/lib/codepipe/webhook.rb +60 -0
  198. data/lib/codepipeline.rb +1 -6
  199. data/lib/template/.codepipeline/pipeline.rb.tt +33 -0
  200. data/lib/template/.codepipeline/schedule.rb +3 -0
  201. data/lib/template/.codepipeline/settings.yml +9 -0
  202. data/lib/template/.codepipeline/sns.rb +14 -0
  203. data/spec/fixtures/app/.codepipeline/pipeline.rb +12 -0
  204. data/spec/fixtures/app/.codepipeline/schedule.rb +1 -0
  205. data/spec/fixtures/app/.codepipeline/webhook.rb +1 -0
  206. data/spec/fixtures/pipelines/approve.rb +22 -0
  207. data/spec/fixtures/pipelines/approve_existing_sns.rb +24 -0
  208. data/spec/lib/cli_spec.rb +18 -0
  209. data/spec/lib/pipeline/approve_spec.rb +32 -0
  210. data/spec/lib/pipeline_spec.rb +12 -0
  211. data/spec/lib/role_spec.rb +12 -0
  212. data/spec/lib/schedule_spec.rb +12 -0
  213. data/spec/lib/webhook_spec.rb +12 -0
  214. data/spec/spec_helper.rb +35 -0
  215. metadata +419 -22
  216. data/.travis.yml +0 -7
  217. data/bin/console +0 -14
  218. data/bin/setup +0 -8
  219. data/codepipeline.gemspec +0 -27
  220. data/lib/codepipeline/version.rb +0 -3
@@ -0,0 +1,76 @@
1
+ # Pipeline DSL
2
+
3
+ .codepipeline/pipeline.rb:
4
+
5
+ ```ruby
6
+ stage "Source" do
7
+ github(
8
+ source: "tongueroo/demo-cb",
9
+ branch: "master",
10
+ auth_token: ssm("/codebuild/github/tongueroo/oauth_token")
11
+ )
12
+ end
13
+ stage "DeployStacks" do
14
+ codebuild "demo1" # action declaration
15
+ codebuild "demo2", "demo3" # will run in parallel. run_order=2
16
+ codebuild "demo4" # action declaration
17
+ end
18
+ ```
19
+
20
+ ## Under the Hood
21
+
22
+ The convenience methods are shorter and cleaner. However, you have access to a "Full" DSL if needed. The Full DSL are merely the properties of the [AWS::CodePipeline::Pipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html). Here's an example.
23
+
24
+ .codepipeline/pipeline.rb:
25
+
26
+ ```ruby
27
+ stage "Source" do
28
+ action(
29
+ name: "Source",
30
+ action_type_id: {
31
+ category: "Source",
32
+ owner: "ThirdParty",
33
+ provider: "GitHub",
34
+ version: "1",
35
+ },
36
+ run_order: 1,
37
+ configuration: {
38
+ branch: "master",
39
+ o_auth_token: ssm("/codebuild/github/tongueroo/oauth_token"),
40
+ owner: "tongueroo",
41
+ poll_for_source_changes: "false",
42
+ repo: "demo-cb"
43
+ },
44
+ output_artifacts: [name: "SourceArtifact"]
45
+ )
46
+ end
47
+
48
+ stage "Deploy Stacks" do
49
+ # serial
50
+ action(
51
+ name: "Build1",
52
+ action_type_id: {
53
+ category: "Build",
54
+ owner: "AWS",
55
+ provider: "CodeBuild",
56
+ version: "1",
57
+ },
58
+ run_order: 2,
59
+ configuration: { project_name: "demo1" },
60
+ input_artifacts: [name: "SourceArtifact"],
61
+ )
62
+ action(
63
+ name: "Build2",
64
+ action_type_id: {
65
+ category: "Build",
66
+ owner: "AWS",
67
+ provider: "CodeBuild",
68
+ version: "1",
69
+ },
70
+ run_order: 2,
71
+ configuration: { project_name: "demo2" },
72
+ input_artifacts: [name: "SourceArtifact"],
73
+ )
74
+ end
75
+ ```
76
+
@@ -0,0 +1,66 @@
1
+ # IAM Role DSL
2
+
3
+ You can create the IAM service role associated with the pipeline. Here's an example:
4
+
5
+ .codepipeline/role.rb:
6
+
7
+ ```ruby
8
+ iam_policy("logs", "ssm")
9
+ ```
10
+
11
+ For more control, here's a longer form:
12
+
13
+ ```ruby
14
+ iam_policy(
15
+ action: [
16
+ "logs:CreateLogGroup",
17
+ "logs:CreateLogStream",
18
+ "logs:PutLogEvents",
19
+ "ssm:*",
20
+ ],
21
+ effect: "Allow",
22
+ resource: "*"
23
+ )
24
+ ```
25
+
26
+ You can also create managed iam policy.
27
+
28
+ ```ruby
29
+ managed_iam_policy("AmazonS3ReadOnlyAccess")
30
+ ```
31
+
32
+ ## Under the Hood
33
+
34
+ The convenience methods merely wrap properties of the [AWS::IAM::Role
35
+ CloudFormation Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). If you wanted to set the CloudFormation properties more directly, here's an example of using the "Full" DSL.
36
+
37
+ .codepipeline/role.rb:
38
+
39
+ ```ruby
40
+ assume_role_policy_document(
41
+ statement: [{
42
+ action: ["sts:AssumeRole"],
43
+ effect: "Allow",
44
+ principal: {
45
+ service: ["codepipeline.amazonaws.com"]
46
+ }
47
+ }],
48
+ version: "2012-10-17"
49
+ )
50
+ path("/")
51
+ policies([{
52
+ policy_name: "CodePipelineAccess",
53
+ policy_document: {
54
+ version: "2012-10-17",
55
+ statement: [{
56
+ action: [
57
+ "logs:CreateLogGroup",
58
+ "logs:CreateLogStream",
59
+ "logs:PutLogEvents",
60
+ ],
61
+ effect: "Allow",
62
+ resource: "*"
63
+ }]
64
+ }
65
+ }])
66
+ ```
@@ -0,0 +1,20 @@
1
+ # Schedule DSL
2
+
3
+ .codepipeline/schedule.rb:
4
+
5
+ ```ruby
6
+ rate "1 day"
7
+ # or
8
+ cron("0 10 * * ? *") # Run at 10:00 am (UTC) every day
9
+ ```
10
+
11
+ ## Under the Hood
12
+
13
+ The convenience methods merely wrap properties of the [AWS::Events::Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description). If you wanted to set the CloudFormation properties more directly, here's an example of using the "Full" DSL.
14
+
15
+ .codepipeline/schedule.rb:
16
+
17
+ ```ruby
18
+ description "my description"
19
+ schedule_expression "rate(1 day)"
20
+ ```
@@ -0,0 +1,35 @@
1
+ ---
2
+ layout: default
3
+ subnav: false
4
+ ---
5
+
6
+ <header class="masthead">
7
+ <div class="container">
8
+ <div class="row">
9
+ <div class="col-sm-8 col-sm-offset-2">
10
+ <div class="header-content">
11
+ <div class="header-content-inner">
12
+ <h1>CodePipeline</h1>
13
+ <h2>A powerful DSL to create CodePipeline pipelines. The codepipeline tool simplifies creating and managing CodePipeline pipelines.</h2>
14
+ <a href="{% link docs.md %}" class="btn btn-outline btn-xl">Learn More!</a>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <div class="col-sm-4">
19
+ <img src="/img/logos/project-logo.png" class="homepage-logo" />
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </header>
24
+
25
+ {% include commands.html %}
26
+
27
+ <section class="cta">
28
+ <div class="cta-content">
29
+ <div class="container">
30
+ <h2>Learn More</h2>
31
+ <a href="{% link quick-start.md %}" class="btn btn-outline btn-xl">Quick Start</a>
32
+ </div>
33
+ </div>
34
+ <div class="overlay"></div>
35
+ </section>
@@ -0,0 +1,39 @@
1
+ function onlyShow(className) {
2
+ $("ul.build-tutorial").hide();
3
+ $("ul.build-new").hide();
4
+ $("ul.build-existing").hide();
5
+ if (className) {
6
+ $("ul." + className).show();
7
+ }
8
+ }
9
+
10
+ $( document ).ready(function() {
11
+ var currentPath = $(location).attr('pathname');
12
+
13
+ // add active class to the subnav link based on the current page
14
+ var activeLink = $(".content-nav a").filter(function(i, link) {
15
+ return(link.pathname == currentPath);
16
+ });
17
+ activeLink.addClass("active");
18
+
19
+ // allows use to use arrow keys to move back and forward through the docs
20
+ var keymap = {};
21
+
22
+ // LEFT
23
+ keymap[ 37 ] = "#prev";
24
+ // RIGHT
25
+ keymap[ 39 ] = "#next";
26
+
27
+ $( document ).on( "keyup", function(event) {
28
+ var href,
29
+ selector = keymap[ event.which ];
30
+ // if the key pressed was in our map, check for the href
31
+ if ( selector ) {
32
+ href = $( selector ).attr( "href" );
33
+ if ( href ) {
34
+ // navigate where the link points
35
+ window.location = href;
36
+ }
37
+ }
38
+ });
39
+ });
@@ -0,0 +1,38 @@
1
+ (function($) {
2
+ "use strict"; // Start of use strict
3
+
4
+ // Smooth scrolling using jQuery easing
5
+ $('a[href*="#"]:not([href="#"])').click(function() {
6
+ if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
7
+ var target = $(this.hash);
8
+ target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
9
+ if (target.length) {
10
+ $('html, body').animate({
11
+ scrollTop: (target.offset().top - 48)
12
+ }, 1000, "easeInOutExpo");
13
+ return false;
14
+ }
15
+ }
16
+ });
17
+
18
+ // Activate scrollspy to add active class to navbar items on scroll
19
+ $('body').scrollspy({
20
+ target: '#mainNav',
21
+ offset: 54
22
+ });
23
+
24
+ // Closes responsive menu when a link is clicked
25
+ $('.navbar-collapse>ul>li>a').click(function() {
26
+ $('.navbar-collapse').collapse('hide');
27
+ });
28
+
29
+ // Collapse the navbar when page is scrolled
30
+ $(window).scroll(function() {
31
+ if ($("#mainNav").offset().top > 10) {
32
+ $("#mainNav").addClass("navbar-shrink");
33
+ } else {
34
+ $("#mainNav").removeClass("navbar-shrink");
35
+ }
36
+ });
37
+
38
+ })(jQuery); // End of use strict
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Start Bootstrap - New Age v4.0.0-alpha (http://startbootstrap.com/template-overviews/new-age)
3
+ * Copyright 2013-2017 Start Bootstrap
4
+ * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-new-age/blob/master/LICENSE)
5
+ */
6
+ !function(a){"use strict";a('a[href*="#"]:not([href="#"])').click(function(){if(location.pathname.replace(/^\//,"")==this.pathname.replace(/^\//,"")&&location.hostname==this.hostname){var n=a(this.hash);if(n=n.length?n:a("[name="+this.hash.slice(1)+"]"),n.length)return a("html, body").animate({scrollTop:n.offset().top-48},1e3,"easeInOutExpo"),!1}}),a("body").scrollspy({target:"#mainNav",offset:54}),a(".navbar-collapse>ul>li>a").click(function(){a(".navbar-collapse").collapse("hide")}),a(window).scroll(function(){a("#mainNav").offset().top>100?a("#mainNav").addClass("navbar-shrink"):a("#mainNav").removeClass("navbar-shrink")})}(jQuery);
@@ -0,0 +1,20 @@
1
+ ---
2
+ # this ensures Jekyll reads the file to be transformed into CSS later
3
+ # only Main files contain this front matter, not partials.
4
+ ---
5
+
6
+ @import "variables";
7
+ @import "mixins";
8
+ @import "global";
9
+ @import "navbar";
10
+ @import "masthead";
11
+ @import "download";
12
+ @import "features";
13
+ @import "cta";
14
+ @import "contact";
15
+ @import "footer";
16
+ @import "bootstrap-overrides";
17
+ @import "table";
18
+ @import "main";
19
+ @import "timeline";
20
+ @import "syntax";
@@ -0,0 +1,73 @@
1
+ ---
2
+ title: Quick Start
3
+ nav_order: 1
4
+ ---
5
+
6
+ In a hurry? No problem! Here's a quick start to get going.
7
+
8
+ ## Summary
9
+
10
+ gem install codepipeline
11
+ cd <your-project>
12
+ pipe init # generates starter .codepipeline files
13
+ # edit .codepipeline/pipeline.rb
14
+ pipe deploy # create the CodePipeline pipeline via CloudFormation
15
+ pipe start # start a CodePipeline pipeline execution
16
+
17
+ ## What Happened?
18
+
19
+ Here are a little more details on what the summarized commands do. First, we install the codepipeline tool.
20
+
21
+ gem install codepipeline
22
+
23
+ Change into your project directory.
24
+
25
+ cd <your-project>
26
+
27
+ If you need a demo project, you can try this demo project: [tongueroo/demo-ufo](git clone https://github.com/tongueroo/demo-ufo).
28
+
29
+ git clone https://github.com/tongueroo/demo-ufo demo
30
+ cd demo
31
+
32
+ Create the starter .codepipeline files in the project.
33
+
34
+ pipe init # generates starter .codepipeline files
35
+
36
+ An important generated file `.codepipeline/pipeline.rb`. The starter file looks something like this:
37
+
38
+ ```ruby
39
+ stage "Source" do
40
+ github(
41
+ source: "tongueroo/demo-test",
42
+ branch: branch, # branch method defaults to "master" or the `pipe deploy --branch` option
43
+ auth_token: ssm("/codebuild/github/tongueroo/oauth_token")
44
+ )
45
+ end
46
+
47
+ stage "Build" do
48
+ codebuild "demo"
49
+ end
50
+ ```
51
+
52
+ This is a short pipeline that has 2 stages:
53
+
54
+ 1. downloads the source code from Gitub and uploads it to S3 as a output artifact
55
+ 2. starts some codebuild project with the code that was previously uploaded to s3 as the output artifact
56
+
57
+ Note: you have to create the codebuild projects as a prequisite. The [codebuild.cloud](https://codebuild.cloud) tool helps with this.
58
+
59
+ To define a pipeline, it much shorter than typical CloudFormation code. You can then create the pipeline with a single command:
60
+
61
+ pipe deploy
62
+
63
+ This deploys a CloudFormation stack that creates a CodePipeline pipeline and IAM role. The IAM role permissions is defined in `.codepipeline/role.rb` via the [IAM Role DSL]({% link _docs/dsl/role.md %}).
64
+
65
+ Once the stack is complete. You can start the CodePipeline pipeline via the CLI or the CodePipeline console. Here is the CLI command:
66
+
67
+ pipe start
68
+
69
+ Here's what CodePipeline pipeline output looks like:
70
+
71
+ ![](/img/docs/codepipeline-output.png)
72
+
73
+ {% include prev_next.md %}
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: CLI Reference
3
+ ---
4
+ {% include reference.md %}
5
+
6
+ * [pipe completion]({% link _reference/pipe-completion.md %})
7
+ * [pipe completion_script]({% link _reference/pipe-completion_script.md %})
8
+ * [pipe delete]({% link _reference/pipe-delete.md %})
9
+ * [pipe deploy]({% link _reference/pipe-deploy.md %})
10
+ * [pipe init]({% link _reference/pipe-init.md %})
11
+ * [pipe start]({% link _reference/pipe-start.md %})
12
+ * [pipe version]({% link _reference/pipe-version.md %})
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Support
3
+ nav_order: 20
4
+ ---
5
+
6
+ ## Getting Help
7
+
8
+ If you're looking for support for codepipeline, here are some options:
9
+
10
+ * Read the [Documentation](http://https://codepipeline.org)
11
+
12
+ ## Report a bug
13
+
14
+ If you think you've found a bug within the codepipeline repository, [open an issue](https://github.com/tongueroo/codepipeline/issues/new/choose).
15
+
16
+ Happy Hackin' 😁
17
+
18
+ ## Commercial Support
19
+
20
+ If you would like professional help, [BoltOps](https://www.boltops.com/) provides consulting. Feel free to reach out by filling out the [contact page](https://www.boltops.com/contact) or sending an email to contact@boltops.com.
21
+
22
+ {% include prev_next.md %}
@@ -0,0 +1,1339 @@
1
+ @-ms-viewport {
2
+ width: device-width;
3
+ }
4
+
5
+ html {
6
+ -webkit-box-sizing: border-box;
7
+ box-sizing: border-box;
8
+ -ms-overflow-style: scrollbar;
9
+ }
10
+
11
+ *,
12
+ *::before,
13
+ *::after {
14
+ -webkit-box-sizing: inherit;
15
+ box-sizing: inherit;
16
+ }
17
+
18
+ .container {
19
+ position: relative;
20
+ margin-left: auto;
21
+ margin-right: auto;
22
+ padding-right: 15px;
23
+ padding-left: 15px;
24
+ }
25
+
26
+ @media (min-width: 576px) {
27
+ .container {
28
+ padding-right: 15px;
29
+ padding-left: 15px;
30
+ }
31
+ }
32
+
33
+ @media (min-width: 768px) {
34
+ .container {
35
+ padding-right: 15px;
36
+ padding-left: 15px;
37
+ }
38
+ }
39
+
40
+ @media (min-width: 992px) {
41
+ .container {
42
+ padding-right: 15px;
43
+ padding-left: 15px;
44
+ }
45
+ }
46
+
47
+ @media (min-width: 1200px) {
48
+ .container {
49
+ padding-right: 15px;
50
+ padding-left: 15px;
51
+ }
52
+ }
53
+
54
+ @media (min-width: 576px) {
55
+ .container {
56
+ width: 540px;
57
+ max-width: 100%;
58
+ }
59
+ }
60
+
61
+ @media (min-width: 768px) {
62
+ .container {
63
+ width: 720px;
64
+ max-width: 100%;
65
+ }
66
+ }
67
+
68
+ @media (min-width: 992px) {
69
+ .container {
70
+ width: 960px;
71
+ max-width: 100%;
72
+ }
73
+ }
74
+
75
+ @media (min-width: 1200px) {
76
+ .container {
77
+ width: 1140px;
78
+ max-width: 100%;
79
+ }
80
+ }
81
+
82
+ .container-fluid {
83
+ position: relative;
84
+ margin-left: auto;
85
+ margin-right: auto;
86
+ padding-right: 15px;
87
+ padding-left: 15px;
88
+ }
89
+
90
+ @media (min-width: 576px) {
91
+ .container-fluid {
92
+ padding-right: 15px;
93
+ padding-left: 15px;
94
+ }
95
+ }
96
+
97
+ @media (min-width: 768px) {
98
+ .container-fluid {
99
+ padding-right: 15px;
100
+ padding-left: 15px;
101
+ }
102
+ }
103
+
104
+ @media (min-width: 992px) {
105
+ .container-fluid {
106
+ padding-right: 15px;
107
+ padding-left: 15px;
108
+ }
109
+ }
110
+
111
+ @media (min-width: 1200px) {
112
+ .container-fluid {
113
+ padding-right: 15px;
114
+ padding-left: 15px;
115
+ }
116
+ }
117
+
118
+ .row {
119
+ display: -webkit-box;
120
+ display: -webkit-flex;
121
+ display: -ms-flexbox;
122
+ display: flex;
123
+ -webkit-flex-wrap: wrap;
124
+ -ms-flex-wrap: wrap;
125
+ flex-wrap: wrap;
126
+ margin-right: -15px;
127
+ margin-left: -15px;
128
+ }
129
+
130
+ @media (min-width: 576px) {
131
+ .row {
132
+ margin-right: -15px;
133
+ margin-left: -15px;
134
+ }
135
+ }
136
+
137
+ @media (min-width: 768px) {
138
+ .row {
139
+ margin-right: -15px;
140
+ margin-left: -15px;
141
+ }
142
+ }
143
+
144
+ @media (min-width: 992px) {
145
+ .row {
146
+ margin-right: -15px;
147
+ margin-left: -15px;
148
+ }
149
+ }
150
+
151
+ @media (min-width: 1200px) {
152
+ .row {
153
+ margin-right: -15px;
154
+ margin-left: -15px;
155
+ }
156
+ }
157
+
158
+ .no-gutters {
159
+ margin-right: 0;
160
+ margin-left: 0;
161
+ }
162
+
163
+ .no-gutters > .col,
164
+ .no-gutters > [class*="col-"] {
165
+ padding-right: 0;
166
+ padding-left: 0;
167
+ }
168
+
169
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
170
+ position: relative;
171
+ width: 100%;
172
+ min-height: 1px;
173
+ padding-right: 15px;
174
+ padding-left: 15px;
175
+ }
176
+
177
+ @media (min-width: 576px) {
178
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
179
+ padding-right: 15px;
180
+ padding-left: 15px;
181
+ }
182
+ }
183
+
184
+ @media (min-width: 768px) {
185
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
186
+ padding-right: 15px;
187
+ padding-left: 15px;
188
+ }
189
+ }
190
+
191
+ @media (min-width: 992px) {
192
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
193
+ padding-right: 15px;
194
+ padding-left: 15px;
195
+ }
196
+ }
197
+
198
+ @media (min-width: 1200px) {
199
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
200
+ padding-right: 15px;
201
+ padding-left: 15px;
202
+ }
203
+ }
204
+
205
+ .col {
206
+ -webkit-flex-basis: 0;
207
+ -ms-flex-preferred-size: 0;
208
+ flex-basis: 0;
209
+ -webkit-box-flex: 1;
210
+ -webkit-flex-grow: 1;
211
+ -ms-flex-positive: 1;
212
+ flex-grow: 1;
213
+ max-width: 100%;
214
+ }
215
+
216
+ .col-auto {
217
+ -webkit-box-flex: 0;
218
+ -webkit-flex: 0 0 auto;
219
+ -ms-flex: 0 0 auto;
220
+ flex: 0 0 auto;
221
+ width: auto;
222
+ }
223
+
224
+ .col-1 {
225
+ -webkit-box-flex: 0;
226
+ -webkit-flex: 0 0 8.333333%;
227
+ -ms-flex: 0 0 8.333333%;
228
+ flex: 0 0 8.333333%;
229
+ max-width: 8.333333%;
230
+ }
231
+
232
+ .col-2 {
233
+ -webkit-box-flex: 0;
234
+ -webkit-flex: 0 0 16.666667%;
235
+ -ms-flex: 0 0 16.666667%;
236
+ flex: 0 0 16.666667%;
237
+ max-width: 16.666667%;
238
+ }
239
+
240
+ .col-3 {
241
+ -webkit-box-flex: 0;
242
+ -webkit-flex: 0 0 25%;
243
+ -ms-flex: 0 0 25%;
244
+ flex: 0 0 25%;
245
+ max-width: 25%;
246
+ }
247
+
248
+ .col-4 {
249
+ -webkit-box-flex: 0;
250
+ -webkit-flex: 0 0 33.333333%;
251
+ -ms-flex: 0 0 33.333333%;
252
+ flex: 0 0 33.333333%;
253
+ max-width: 33.333333%;
254
+ }
255
+
256
+ .col-5 {
257
+ -webkit-box-flex: 0;
258
+ -webkit-flex: 0 0 41.666667%;
259
+ -ms-flex: 0 0 41.666667%;
260
+ flex: 0 0 41.666667%;
261
+ max-width: 41.666667%;
262
+ }
263
+
264
+ .col-6 {
265
+ -webkit-box-flex: 0;
266
+ -webkit-flex: 0 0 50%;
267
+ -ms-flex: 0 0 50%;
268
+ flex: 0 0 50%;
269
+ max-width: 50%;
270
+ }
271
+
272
+ .col-7 {
273
+ -webkit-box-flex: 0;
274
+ -webkit-flex: 0 0 58.333333%;
275
+ -ms-flex: 0 0 58.333333%;
276
+ flex: 0 0 58.333333%;
277
+ max-width: 58.333333%;
278
+ }
279
+
280
+ .col-8 {
281
+ -webkit-box-flex: 0;
282
+ -webkit-flex: 0 0 66.666667%;
283
+ -ms-flex: 0 0 66.666667%;
284
+ flex: 0 0 66.666667%;
285
+ max-width: 66.666667%;
286
+ }
287
+
288
+ .col-9 {
289
+ -webkit-box-flex: 0;
290
+ -webkit-flex: 0 0 75%;
291
+ -ms-flex: 0 0 75%;
292
+ flex: 0 0 75%;
293
+ max-width: 75%;
294
+ }
295
+
296
+ .col-10 {
297
+ -webkit-box-flex: 0;
298
+ -webkit-flex: 0 0 83.333333%;
299
+ -ms-flex: 0 0 83.333333%;
300
+ flex: 0 0 83.333333%;
301
+ max-width: 83.333333%;
302
+ }
303
+
304
+ .col-11 {
305
+ -webkit-box-flex: 0;
306
+ -webkit-flex: 0 0 91.666667%;
307
+ -ms-flex: 0 0 91.666667%;
308
+ flex: 0 0 91.666667%;
309
+ max-width: 91.666667%;
310
+ }
311
+
312
+ .col-12 {
313
+ -webkit-box-flex: 0;
314
+ -webkit-flex: 0 0 100%;
315
+ -ms-flex: 0 0 100%;
316
+ flex: 0 0 100%;
317
+ max-width: 100%;
318
+ }
319
+
320
+ .pull-0 {
321
+ right: auto;
322
+ }
323
+
324
+ .pull-1 {
325
+ right: 8.333333%;
326
+ }
327
+
328
+ .pull-2 {
329
+ right: 16.666667%;
330
+ }
331
+
332
+ .pull-3 {
333
+ right: 25%;
334
+ }
335
+
336
+ .pull-4 {
337
+ right: 33.333333%;
338
+ }
339
+
340
+ .pull-5 {
341
+ right: 41.666667%;
342
+ }
343
+
344
+ .pull-6 {
345
+ right: 50%;
346
+ }
347
+
348
+ .pull-7 {
349
+ right: 58.333333%;
350
+ }
351
+
352
+ .pull-8 {
353
+ right: 66.666667%;
354
+ }
355
+
356
+ .pull-9 {
357
+ right: 75%;
358
+ }
359
+
360
+ .pull-10 {
361
+ right: 83.333333%;
362
+ }
363
+
364
+ .pull-11 {
365
+ right: 91.666667%;
366
+ }
367
+
368
+ .pull-12 {
369
+ right: 100%;
370
+ }
371
+
372
+ .push-0 {
373
+ left: auto;
374
+ }
375
+
376
+ .push-1 {
377
+ left: 8.333333%;
378
+ }
379
+
380
+ .push-2 {
381
+ left: 16.666667%;
382
+ }
383
+
384
+ .push-3 {
385
+ left: 25%;
386
+ }
387
+
388
+ .push-4 {
389
+ left: 33.333333%;
390
+ }
391
+
392
+ .push-5 {
393
+ left: 41.666667%;
394
+ }
395
+
396
+ .push-6 {
397
+ left: 50%;
398
+ }
399
+
400
+ .push-7 {
401
+ left: 58.333333%;
402
+ }
403
+
404
+ .push-8 {
405
+ left: 66.666667%;
406
+ }
407
+
408
+ .push-9 {
409
+ left: 75%;
410
+ }
411
+
412
+ .push-10 {
413
+ left: 83.333333%;
414
+ }
415
+
416
+ .push-11 {
417
+ left: 91.666667%;
418
+ }
419
+
420
+ .push-12 {
421
+ left: 100%;
422
+ }
423
+
424
+ .offset-1 {
425
+ margin-left: 8.333333%;
426
+ }
427
+
428
+ .offset-2 {
429
+ margin-left: 16.666667%;
430
+ }
431
+
432
+ .offset-3 {
433
+ margin-left: 25%;
434
+ }
435
+
436
+ .offset-4 {
437
+ margin-left: 33.333333%;
438
+ }
439
+
440
+ .offset-5 {
441
+ margin-left: 41.666667%;
442
+ }
443
+
444
+ .offset-6 {
445
+ margin-left: 50%;
446
+ }
447
+
448
+ .offset-7 {
449
+ margin-left: 58.333333%;
450
+ }
451
+
452
+ .offset-8 {
453
+ margin-left: 66.666667%;
454
+ }
455
+
456
+ .offset-9 {
457
+ margin-left: 75%;
458
+ }
459
+
460
+ .offset-10 {
461
+ margin-left: 83.333333%;
462
+ }
463
+
464
+ .offset-11 {
465
+ margin-left: 91.666667%;
466
+ }
467
+
468
+ @media (min-width: 576px) {
469
+ .col-sm {
470
+ -webkit-flex-basis: 0;
471
+ -ms-flex-preferred-size: 0;
472
+ flex-basis: 0;
473
+ -webkit-box-flex: 1;
474
+ -webkit-flex-grow: 1;
475
+ -ms-flex-positive: 1;
476
+ flex-grow: 1;
477
+ max-width: 100%;
478
+ }
479
+ .col-sm-auto {
480
+ -webkit-box-flex: 0;
481
+ -webkit-flex: 0 0 auto;
482
+ -ms-flex: 0 0 auto;
483
+ flex: 0 0 auto;
484
+ width: auto;
485
+ }
486
+ .col-sm-1 {
487
+ -webkit-box-flex: 0;
488
+ -webkit-flex: 0 0 8.333333%;
489
+ -ms-flex: 0 0 8.333333%;
490
+ flex: 0 0 8.333333%;
491
+ max-width: 8.333333%;
492
+ }
493
+ .col-sm-2 {
494
+ -webkit-box-flex: 0;
495
+ -webkit-flex: 0 0 16.666667%;
496
+ -ms-flex: 0 0 16.666667%;
497
+ flex: 0 0 16.666667%;
498
+ max-width: 16.666667%;
499
+ }
500
+ .col-sm-3 {
501
+ -webkit-box-flex: 0;
502
+ -webkit-flex: 0 0 25%;
503
+ -ms-flex: 0 0 25%;
504
+ flex: 0 0 25%;
505
+ max-width: 25%;
506
+ }
507
+ .col-sm-4 {
508
+ -webkit-box-flex: 0;
509
+ -webkit-flex: 0 0 33.333333%;
510
+ -ms-flex: 0 0 33.333333%;
511
+ flex: 0 0 33.333333%;
512
+ max-width: 33.333333%;
513
+ }
514
+ .col-sm-5 {
515
+ -webkit-box-flex: 0;
516
+ -webkit-flex: 0 0 41.666667%;
517
+ -ms-flex: 0 0 41.666667%;
518
+ flex: 0 0 41.666667%;
519
+ max-width: 41.666667%;
520
+ }
521
+ .col-sm-6 {
522
+ -webkit-box-flex: 0;
523
+ -webkit-flex: 0 0 50%;
524
+ -ms-flex: 0 0 50%;
525
+ flex: 0 0 50%;
526
+ max-width: 50%;
527
+ }
528
+ .col-sm-7 {
529
+ -webkit-box-flex: 0;
530
+ -webkit-flex: 0 0 58.333333%;
531
+ -ms-flex: 0 0 58.333333%;
532
+ flex: 0 0 58.333333%;
533
+ max-width: 58.333333%;
534
+ }
535
+ .col-sm-8 {
536
+ -webkit-box-flex: 0;
537
+ -webkit-flex: 0 0 66.666667%;
538
+ -ms-flex: 0 0 66.666667%;
539
+ flex: 0 0 66.666667%;
540
+ max-width: 66.666667%;
541
+ }
542
+ .col-sm-9 {
543
+ -webkit-box-flex: 0;
544
+ -webkit-flex: 0 0 75%;
545
+ -ms-flex: 0 0 75%;
546
+ flex: 0 0 75%;
547
+ max-width: 75%;
548
+ }
549
+ .col-sm-10 {
550
+ -webkit-box-flex: 0;
551
+ -webkit-flex: 0 0 83.333333%;
552
+ -ms-flex: 0 0 83.333333%;
553
+ flex: 0 0 83.333333%;
554
+ max-width: 83.333333%;
555
+ }
556
+ .col-sm-11 {
557
+ -webkit-box-flex: 0;
558
+ -webkit-flex: 0 0 91.666667%;
559
+ -ms-flex: 0 0 91.666667%;
560
+ flex: 0 0 91.666667%;
561
+ max-width: 91.666667%;
562
+ }
563
+ .col-sm-12 {
564
+ -webkit-box-flex: 0;
565
+ -webkit-flex: 0 0 100%;
566
+ -ms-flex: 0 0 100%;
567
+ flex: 0 0 100%;
568
+ max-width: 100%;
569
+ }
570
+ .pull-sm-0 {
571
+ right: auto;
572
+ }
573
+ .pull-sm-1 {
574
+ right: 8.333333%;
575
+ }
576
+ .pull-sm-2 {
577
+ right: 16.666667%;
578
+ }
579
+ .pull-sm-3 {
580
+ right: 25%;
581
+ }
582
+ .pull-sm-4 {
583
+ right: 33.333333%;
584
+ }
585
+ .pull-sm-5 {
586
+ right: 41.666667%;
587
+ }
588
+ .pull-sm-6 {
589
+ right: 50%;
590
+ }
591
+ .pull-sm-7 {
592
+ right: 58.333333%;
593
+ }
594
+ .pull-sm-8 {
595
+ right: 66.666667%;
596
+ }
597
+ .pull-sm-9 {
598
+ right: 75%;
599
+ }
600
+ .pull-sm-10 {
601
+ right: 83.333333%;
602
+ }
603
+ .pull-sm-11 {
604
+ right: 91.666667%;
605
+ }
606
+ .pull-sm-12 {
607
+ right: 100%;
608
+ }
609
+ .push-sm-0 {
610
+ left: auto;
611
+ }
612
+ .push-sm-1 {
613
+ left: 8.333333%;
614
+ }
615
+ .push-sm-2 {
616
+ left: 16.666667%;
617
+ }
618
+ .push-sm-3 {
619
+ left: 25%;
620
+ }
621
+ .push-sm-4 {
622
+ left: 33.333333%;
623
+ }
624
+ .push-sm-5 {
625
+ left: 41.666667%;
626
+ }
627
+ .push-sm-6 {
628
+ left: 50%;
629
+ }
630
+ .push-sm-7 {
631
+ left: 58.333333%;
632
+ }
633
+ .push-sm-8 {
634
+ left: 66.666667%;
635
+ }
636
+ .push-sm-9 {
637
+ left: 75%;
638
+ }
639
+ .push-sm-10 {
640
+ left: 83.333333%;
641
+ }
642
+ .push-sm-11 {
643
+ left: 91.666667%;
644
+ }
645
+ .push-sm-12 {
646
+ left: 100%;
647
+ }
648
+ .offset-sm-0 {
649
+ margin-left: 0%;
650
+ }
651
+ .offset-sm-1 {
652
+ margin-left: 8.333333%;
653
+ }
654
+ .offset-sm-2 {
655
+ margin-left: 16.666667%;
656
+ }
657
+ .offset-sm-3 {
658
+ margin-left: 25%;
659
+ }
660
+ .offset-sm-4 {
661
+ margin-left: 33.333333%;
662
+ }
663
+ .offset-sm-5 {
664
+ margin-left: 41.666667%;
665
+ }
666
+ .offset-sm-6 {
667
+ margin-left: 50%;
668
+ }
669
+ .offset-sm-7 {
670
+ margin-left: 58.333333%;
671
+ }
672
+ .offset-sm-8 {
673
+ margin-left: 66.666667%;
674
+ }
675
+ .offset-sm-9 {
676
+ margin-left: 75%;
677
+ }
678
+ .offset-sm-10 {
679
+ margin-left: 83.333333%;
680
+ }
681
+ .offset-sm-11 {
682
+ margin-left: 91.666667%;
683
+ }
684
+ }
685
+
686
+ @media (min-width: 768px) {
687
+ .col-md {
688
+ -webkit-flex-basis: 0;
689
+ -ms-flex-preferred-size: 0;
690
+ flex-basis: 0;
691
+ -webkit-box-flex: 1;
692
+ -webkit-flex-grow: 1;
693
+ -ms-flex-positive: 1;
694
+ flex-grow: 1;
695
+ max-width: 100%;
696
+ }
697
+ .col-md-auto {
698
+ -webkit-box-flex: 0;
699
+ -webkit-flex: 0 0 auto;
700
+ -ms-flex: 0 0 auto;
701
+ flex: 0 0 auto;
702
+ width: auto;
703
+ }
704
+ .col-md-1 {
705
+ -webkit-box-flex: 0;
706
+ -webkit-flex: 0 0 8.333333%;
707
+ -ms-flex: 0 0 8.333333%;
708
+ flex: 0 0 8.333333%;
709
+ max-width: 8.333333%;
710
+ }
711
+ .col-md-2 {
712
+ -webkit-box-flex: 0;
713
+ -webkit-flex: 0 0 16.666667%;
714
+ -ms-flex: 0 0 16.666667%;
715
+ flex: 0 0 16.666667%;
716
+ max-width: 16.666667%;
717
+ }
718
+ .col-md-3 {
719
+ -webkit-box-flex: 0;
720
+ -webkit-flex: 0 0 25%;
721
+ -ms-flex: 0 0 25%;
722
+ flex: 0 0 25%;
723
+ max-width: 25%;
724
+ }
725
+ .col-md-4 {
726
+ -webkit-box-flex: 0;
727
+ -webkit-flex: 0 0 33.333333%;
728
+ -ms-flex: 0 0 33.333333%;
729
+ flex: 0 0 33.333333%;
730
+ max-width: 33.333333%;
731
+ }
732
+ .col-md-5 {
733
+ -webkit-box-flex: 0;
734
+ -webkit-flex: 0 0 41.666667%;
735
+ -ms-flex: 0 0 41.666667%;
736
+ flex: 0 0 41.666667%;
737
+ max-width: 41.666667%;
738
+ }
739
+ .col-md-6 {
740
+ -webkit-box-flex: 0;
741
+ -webkit-flex: 0 0 50%;
742
+ -ms-flex: 0 0 50%;
743
+ flex: 0 0 50%;
744
+ max-width: 50%;
745
+ }
746
+ .col-md-7 {
747
+ -webkit-box-flex: 0;
748
+ -webkit-flex: 0 0 58.333333%;
749
+ -ms-flex: 0 0 58.333333%;
750
+ flex: 0 0 58.333333%;
751
+ max-width: 58.333333%;
752
+ }
753
+ .col-md-8 {
754
+ -webkit-box-flex: 0;
755
+ -webkit-flex: 0 0 66.666667%;
756
+ -ms-flex: 0 0 66.666667%;
757
+ flex: 0 0 66.666667%;
758
+ max-width: 66.666667%;
759
+ }
760
+ .col-md-9 {
761
+ -webkit-box-flex: 0;
762
+ -webkit-flex: 0 0 75%;
763
+ -ms-flex: 0 0 75%;
764
+ flex: 0 0 75%;
765
+ max-width: 75%;
766
+ }
767
+ .col-md-10 {
768
+ -webkit-box-flex: 0;
769
+ -webkit-flex: 0 0 83.333333%;
770
+ -ms-flex: 0 0 83.333333%;
771
+ flex: 0 0 83.333333%;
772
+ max-width: 83.333333%;
773
+ }
774
+ .col-md-11 {
775
+ -webkit-box-flex: 0;
776
+ -webkit-flex: 0 0 91.666667%;
777
+ -ms-flex: 0 0 91.666667%;
778
+ flex: 0 0 91.666667%;
779
+ max-width: 91.666667%;
780
+ }
781
+ .col-md-12 {
782
+ -webkit-box-flex: 0;
783
+ -webkit-flex: 0 0 100%;
784
+ -ms-flex: 0 0 100%;
785
+ flex: 0 0 100%;
786
+ max-width: 100%;
787
+ }
788
+ .pull-md-0 {
789
+ right: auto;
790
+ }
791
+ .pull-md-1 {
792
+ right: 8.333333%;
793
+ }
794
+ .pull-md-2 {
795
+ right: 16.666667%;
796
+ }
797
+ .pull-md-3 {
798
+ right: 25%;
799
+ }
800
+ .pull-md-4 {
801
+ right: 33.333333%;
802
+ }
803
+ .pull-md-5 {
804
+ right: 41.666667%;
805
+ }
806
+ .pull-md-6 {
807
+ right: 50%;
808
+ }
809
+ .pull-md-7 {
810
+ right: 58.333333%;
811
+ }
812
+ .pull-md-8 {
813
+ right: 66.666667%;
814
+ }
815
+ .pull-md-9 {
816
+ right: 75%;
817
+ }
818
+ .pull-md-10 {
819
+ right: 83.333333%;
820
+ }
821
+ .pull-md-11 {
822
+ right: 91.666667%;
823
+ }
824
+ .pull-md-12 {
825
+ right: 100%;
826
+ }
827
+ .push-md-0 {
828
+ left: auto;
829
+ }
830
+ .push-md-1 {
831
+ left: 8.333333%;
832
+ }
833
+ .push-md-2 {
834
+ left: 16.666667%;
835
+ }
836
+ .push-md-3 {
837
+ left: 25%;
838
+ }
839
+ .push-md-4 {
840
+ left: 33.333333%;
841
+ }
842
+ .push-md-5 {
843
+ left: 41.666667%;
844
+ }
845
+ .push-md-6 {
846
+ left: 50%;
847
+ }
848
+ .push-md-7 {
849
+ left: 58.333333%;
850
+ }
851
+ .push-md-8 {
852
+ left: 66.666667%;
853
+ }
854
+ .push-md-9 {
855
+ left: 75%;
856
+ }
857
+ .push-md-10 {
858
+ left: 83.333333%;
859
+ }
860
+ .push-md-11 {
861
+ left: 91.666667%;
862
+ }
863
+ .push-md-12 {
864
+ left: 100%;
865
+ }
866
+ .offset-md-0 {
867
+ margin-left: 0%;
868
+ }
869
+ .offset-md-1 {
870
+ margin-left: 8.333333%;
871
+ }
872
+ .offset-md-2 {
873
+ margin-left: 16.666667%;
874
+ }
875
+ .offset-md-3 {
876
+ margin-left: 25%;
877
+ }
878
+ .offset-md-4 {
879
+ margin-left: 33.333333%;
880
+ }
881
+ .offset-md-5 {
882
+ margin-left: 41.666667%;
883
+ }
884
+ .offset-md-6 {
885
+ margin-left: 50%;
886
+ }
887
+ .offset-md-7 {
888
+ margin-left: 58.333333%;
889
+ }
890
+ .offset-md-8 {
891
+ margin-left: 66.666667%;
892
+ }
893
+ .offset-md-9 {
894
+ margin-left: 75%;
895
+ }
896
+ .offset-md-10 {
897
+ margin-left: 83.333333%;
898
+ }
899
+ .offset-md-11 {
900
+ margin-left: 91.666667%;
901
+ }
902
+ }
903
+
904
+ @media (min-width: 992px) {
905
+ .col-lg {
906
+ -webkit-flex-basis: 0;
907
+ -ms-flex-preferred-size: 0;
908
+ flex-basis: 0;
909
+ -webkit-box-flex: 1;
910
+ -webkit-flex-grow: 1;
911
+ -ms-flex-positive: 1;
912
+ flex-grow: 1;
913
+ max-width: 100%;
914
+ }
915
+ .col-lg-auto {
916
+ -webkit-box-flex: 0;
917
+ -webkit-flex: 0 0 auto;
918
+ -ms-flex: 0 0 auto;
919
+ flex: 0 0 auto;
920
+ width: auto;
921
+ }
922
+ .col-lg-1 {
923
+ -webkit-box-flex: 0;
924
+ -webkit-flex: 0 0 8.333333%;
925
+ -ms-flex: 0 0 8.333333%;
926
+ flex: 0 0 8.333333%;
927
+ max-width: 8.333333%;
928
+ }
929
+ .col-lg-2 {
930
+ -webkit-box-flex: 0;
931
+ -webkit-flex: 0 0 16.666667%;
932
+ -ms-flex: 0 0 16.666667%;
933
+ flex: 0 0 16.666667%;
934
+ max-width: 16.666667%;
935
+ }
936
+ .col-lg-3 {
937
+ -webkit-box-flex: 0;
938
+ -webkit-flex: 0 0 25%;
939
+ -ms-flex: 0 0 25%;
940
+ flex: 0 0 25%;
941
+ max-width: 25%;
942
+ }
943
+ .col-lg-4 {
944
+ -webkit-box-flex: 0;
945
+ -webkit-flex: 0 0 33.333333%;
946
+ -ms-flex: 0 0 33.333333%;
947
+ flex: 0 0 33.333333%;
948
+ max-width: 33.333333%;
949
+ }
950
+ .col-lg-5 {
951
+ -webkit-box-flex: 0;
952
+ -webkit-flex: 0 0 41.666667%;
953
+ -ms-flex: 0 0 41.666667%;
954
+ flex: 0 0 41.666667%;
955
+ max-width: 41.666667%;
956
+ }
957
+ .col-lg-6 {
958
+ -webkit-box-flex: 0;
959
+ -webkit-flex: 0 0 50%;
960
+ -ms-flex: 0 0 50%;
961
+ flex: 0 0 50%;
962
+ max-width: 50%;
963
+ }
964
+ .col-lg-7 {
965
+ -webkit-box-flex: 0;
966
+ -webkit-flex: 0 0 58.333333%;
967
+ -ms-flex: 0 0 58.333333%;
968
+ flex: 0 0 58.333333%;
969
+ max-width: 58.333333%;
970
+ }
971
+ .col-lg-8 {
972
+ -webkit-box-flex: 0;
973
+ -webkit-flex: 0 0 66.666667%;
974
+ -ms-flex: 0 0 66.666667%;
975
+ flex: 0 0 66.666667%;
976
+ max-width: 66.666667%;
977
+ }
978
+ .col-lg-9 {
979
+ -webkit-box-flex: 0;
980
+ -webkit-flex: 0 0 75%;
981
+ -ms-flex: 0 0 75%;
982
+ flex: 0 0 75%;
983
+ max-width: 75%;
984
+ }
985
+ .col-lg-10 {
986
+ -webkit-box-flex: 0;
987
+ -webkit-flex: 0 0 83.333333%;
988
+ -ms-flex: 0 0 83.333333%;
989
+ flex: 0 0 83.333333%;
990
+ max-width: 83.333333%;
991
+ }
992
+ .col-lg-11 {
993
+ -webkit-box-flex: 0;
994
+ -webkit-flex: 0 0 91.666667%;
995
+ -ms-flex: 0 0 91.666667%;
996
+ flex: 0 0 91.666667%;
997
+ max-width: 91.666667%;
998
+ }
999
+ .col-lg-12 {
1000
+ -webkit-box-flex: 0;
1001
+ -webkit-flex: 0 0 100%;
1002
+ -ms-flex: 0 0 100%;
1003
+ flex: 0 0 100%;
1004
+ max-width: 100%;
1005
+ }
1006
+ .pull-lg-0 {
1007
+ right: auto;
1008
+ }
1009
+ .pull-lg-1 {
1010
+ right: 8.333333%;
1011
+ }
1012
+ .pull-lg-2 {
1013
+ right: 16.666667%;
1014
+ }
1015
+ .pull-lg-3 {
1016
+ right: 25%;
1017
+ }
1018
+ .pull-lg-4 {
1019
+ right: 33.333333%;
1020
+ }
1021
+ .pull-lg-5 {
1022
+ right: 41.666667%;
1023
+ }
1024
+ .pull-lg-6 {
1025
+ right: 50%;
1026
+ }
1027
+ .pull-lg-7 {
1028
+ right: 58.333333%;
1029
+ }
1030
+ .pull-lg-8 {
1031
+ right: 66.666667%;
1032
+ }
1033
+ .pull-lg-9 {
1034
+ right: 75%;
1035
+ }
1036
+ .pull-lg-10 {
1037
+ right: 83.333333%;
1038
+ }
1039
+ .pull-lg-11 {
1040
+ right: 91.666667%;
1041
+ }
1042
+ .pull-lg-12 {
1043
+ right: 100%;
1044
+ }
1045
+ .push-lg-0 {
1046
+ left: auto;
1047
+ }
1048
+ .push-lg-1 {
1049
+ left: 8.333333%;
1050
+ }
1051
+ .push-lg-2 {
1052
+ left: 16.666667%;
1053
+ }
1054
+ .push-lg-3 {
1055
+ left: 25%;
1056
+ }
1057
+ .push-lg-4 {
1058
+ left: 33.333333%;
1059
+ }
1060
+ .push-lg-5 {
1061
+ left: 41.666667%;
1062
+ }
1063
+ .push-lg-6 {
1064
+ left: 50%;
1065
+ }
1066
+ .push-lg-7 {
1067
+ left: 58.333333%;
1068
+ }
1069
+ .push-lg-8 {
1070
+ left: 66.666667%;
1071
+ }
1072
+ .push-lg-9 {
1073
+ left: 75%;
1074
+ }
1075
+ .push-lg-10 {
1076
+ left: 83.333333%;
1077
+ }
1078
+ .push-lg-11 {
1079
+ left: 91.666667%;
1080
+ }
1081
+ .push-lg-12 {
1082
+ left: 100%;
1083
+ }
1084
+ .offset-lg-0 {
1085
+ margin-left: 0%;
1086
+ }
1087
+ .offset-lg-1 {
1088
+ margin-left: 8.333333%;
1089
+ }
1090
+ .offset-lg-2 {
1091
+ margin-left: 16.666667%;
1092
+ }
1093
+ .offset-lg-3 {
1094
+ margin-left: 25%;
1095
+ }
1096
+ .offset-lg-4 {
1097
+ margin-left: 33.333333%;
1098
+ }
1099
+ .offset-lg-5 {
1100
+ margin-left: 41.666667%;
1101
+ }
1102
+ .offset-lg-6 {
1103
+ margin-left: 50%;
1104
+ }
1105
+ .offset-lg-7 {
1106
+ margin-left: 58.333333%;
1107
+ }
1108
+ .offset-lg-8 {
1109
+ margin-left: 66.666667%;
1110
+ }
1111
+ .offset-lg-9 {
1112
+ margin-left: 75%;
1113
+ }
1114
+ .offset-lg-10 {
1115
+ margin-left: 83.333333%;
1116
+ }
1117
+ .offset-lg-11 {
1118
+ margin-left: 91.666667%;
1119
+ }
1120
+ }
1121
+
1122
+ @media (min-width: 1200px) {
1123
+ .col-xl {
1124
+ -webkit-flex-basis: 0;
1125
+ -ms-flex-preferred-size: 0;
1126
+ flex-basis: 0;
1127
+ -webkit-box-flex: 1;
1128
+ -webkit-flex-grow: 1;
1129
+ -ms-flex-positive: 1;
1130
+ flex-grow: 1;
1131
+ max-width: 100%;
1132
+ }
1133
+ .col-xl-auto {
1134
+ -webkit-box-flex: 0;
1135
+ -webkit-flex: 0 0 auto;
1136
+ -ms-flex: 0 0 auto;
1137
+ flex: 0 0 auto;
1138
+ width: auto;
1139
+ }
1140
+ .col-xl-1 {
1141
+ -webkit-box-flex: 0;
1142
+ -webkit-flex: 0 0 8.333333%;
1143
+ -ms-flex: 0 0 8.333333%;
1144
+ flex: 0 0 8.333333%;
1145
+ max-width: 8.333333%;
1146
+ }
1147
+ .col-xl-2 {
1148
+ -webkit-box-flex: 0;
1149
+ -webkit-flex: 0 0 16.666667%;
1150
+ -ms-flex: 0 0 16.666667%;
1151
+ flex: 0 0 16.666667%;
1152
+ max-width: 16.666667%;
1153
+ }
1154
+ .col-xl-3 {
1155
+ -webkit-box-flex: 0;
1156
+ -webkit-flex: 0 0 25%;
1157
+ -ms-flex: 0 0 25%;
1158
+ flex: 0 0 25%;
1159
+ max-width: 25%;
1160
+ }
1161
+ .col-xl-4 {
1162
+ -webkit-box-flex: 0;
1163
+ -webkit-flex: 0 0 33.333333%;
1164
+ -ms-flex: 0 0 33.333333%;
1165
+ flex: 0 0 33.333333%;
1166
+ max-width: 33.333333%;
1167
+ }
1168
+ .col-xl-5 {
1169
+ -webkit-box-flex: 0;
1170
+ -webkit-flex: 0 0 41.666667%;
1171
+ -ms-flex: 0 0 41.666667%;
1172
+ flex: 0 0 41.666667%;
1173
+ max-width: 41.666667%;
1174
+ }
1175
+ .col-xl-6 {
1176
+ -webkit-box-flex: 0;
1177
+ -webkit-flex: 0 0 50%;
1178
+ -ms-flex: 0 0 50%;
1179
+ flex: 0 0 50%;
1180
+ max-width: 50%;
1181
+ }
1182
+ .col-xl-7 {
1183
+ -webkit-box-flex: 0;
1184
+ -webkit-flex: 0 0 58.333333%;
1185
+ -ms-flex: 0 0 58.333333%;
1186
+ flex: 0 0 58.333333%;
1187
+ max-width: 58.333333%;
1188
+ }
1189
+ .col-xl-8 {
1190
+ -webkit-box-flex: 0;
1191
+ -webkit-flex: 0 0 66.666667%;
1192
+ -ms-flex: 0 0 66.666667%;
1193
+ flex: 0 0 66.666667%;
1194
+ max-width: 66.666667%;
1195
+ }
1196
+ .col-xl-9 {
1197
+ -webkit-box-flex: 0;
1198
+ -webkit-flex: 0 0 75%;
1199
+ -ms-flex: 0 0 75%;
1200
+ flex: 0 0 75%;
1201
+ max-width: 75%;
1202
+ }
1203
+ .col-xl-10 {
1204
+ -webkit-box-flex: 0;
1205
+ -webkit-flex: 0 0 83.333333%;
1206
+ -ms-flex: 0 0 83.333333%;
1207
+ flex: 0 0 83.333333%;
1208
+ max-width: 83.333333%;
1209
+ }
1210
+ .col-xl-11 {
1211
+ -webkit-box-flex: 0;
1212
+ -webkit-flex: 0 0 91.666667%;
1213
+ -ms-flex: 0 0 91.666667%;
1214
+ flex: 0 0 91.666667%;
1215
+ max-width: 91.666667%;
1216
+ }
1217
+ .col-xl-12 {
1218
+ -webkit-box-flex: 0;
1219
+ -webkit-flex: 0 0 100%;
1220
+ -ms-flex: 0 0 100%;
1221
+ flex: 0 0 100%;
1222
+ max-width: 100%;
1223
+ }
1224
+ .pull-xl-0 {
1225
+ right: auto;
1226
+ }
1227
+ .pull-xl-1 {
1228
+ right: 8.333333%;
1229
+ }
1230
+ .pull-xl-2 {
1231
+ right: 16.666667%;
1232
+ }
1233
+ .pull-xl-3 {
1234
+ right: 25%;
1235
+ }
1236
+ .pull-xl-4 {
1237
+ right: 33.333333%;
1238
+ }
1239
+ .pull-xl-5 {
1240
+ right: 41.666667%;
1241
+ }
1242
+ .pull-xl-6 {
1243
+ right: 50%;
1244
+ }
1245
+ .pull-xl-7 {
1246
+ right: 58.333333%;
1247
+ }
1248
+ .pull-xl-8 {
1249
+ right: 66.666667%;
1250
+ }
1251
+ .pull-xl-9 {
1252
+ right: 75%;
1253
+ }
1254
+ .pull-xl-10 {
1255
+ right: 83.333333%;
1256
+ }
1257
+ .pull-xl-11 {
1258
+ right: 91.666667%;
1259
+ }
1260
+ .pull-xl-12 {
1261
+ right: 100%;
1262
+ }
1263
+ .push-xl-0 {
1264
+ left: auto;
1265
+ }
1266
+ .push-xl-1 {
1267
+ left: 8.333333%;
1268
+ }
1269
+ .push-xl-2 {
1270
+ left: 16.666667%;
1271
+ }
1272
+ .push-xl-3 {
1273
+ left: 25%;
1274
+ }
1275
+ .push-xl-4 {
1276
+ left: 33.333333%;
1277
+ }
1278
+ .push-xl-5 {
1279
+ left: 41.666667%;
1280
+ }
1281
+ .push-xl-6 {
1282
+ left: 50%;
1283
+ }
1284
+ .push-xl-7 {
1285
+ left: 58.333333%;
1286
+ }
1287
+ .push-xl-8 {
1288
+ left: 66.666667%;
1289
+ }
1290
+ .push-xl-9 {
1291
+ left: 75%;
1292
+ }
1293
+ .push-xl-10 {
1294
+ left: 83.333333%;
1295
+ }
1296
+ .push-xl-11 {
1297
+ left: 91.666667%;
1298
+ }
1299
+ .push-xl-12 {
1300
+ left: 100%;
1301
+ }
1302
+ .offset-xl-0 {
1303
+ margin-left: 0%;
1304
+ }
1305
+ .offset-xl-1 {
1306
+ margin-left: 8.333333%;
1307
+ }
1308
+ .offset-xl-2 {
1309
+ margin-left: 16.666667%;
1310
+ }
1311
+ .offset-xl-3 {
1312
+ margin-left: 25%;
1313
+ }
1314
+ .offset-xl-4 {
1315
+ margin-left: 33.333333%;
1316
+ }
1317
+ .offset-xl-5 {
1318
+ margin-left: 41.666667%;
1319
+ }
1320
+ .offset-xl-6 {
1321
+ margin-left: 50%;
1322
+ }
1323
+ .offset-xl-7 {
1324
+ margin-left: 58.333333%;
1325
+ }
1326
+ .offset-xl-8 {
1327
+ margin-left: 66.666667%;
1328
+ }
1329
+ .offset-xl-9 {
1330
+ margin-left: 75%;
1331
+ }
1332
+ .offset-xl-10 {
1333
+ margin-left: 83.333333%;
1334
+ }
1335
+ .offset-xl-11 {
1336
+ margin-left: 91.666667%;
1337
+ }
1338
+ }
1339
+ /*# sourceMappingURL=bootstrap-grid.css.map */