{"id":3630,"date":"2024-05-24T06:24:51","date_gmt":"2024-05-24T05:24:51","guid":{"rendered":"https:\/\/www.easydeploy.io\/blog\/?p=3630"},"modified":"2024-05-27T06:16:30","modified_gmt":"2024-05-27T05:16:30","slug":"how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3","status":"publish","type":"post","link":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/","title":{"rendered":"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3"},"content":{"rendered":"<p>In this article, we are going to cover a <strong>Jenkins CI\/CD pipeline to build and deploy a angular app from github to amazon s3.<\/strong><\/p>\n<p><strong>Jenkins<\/strong> is an open-source automation server that is widely used for building, testing, and deploying software projects. It provides a platform for implementing Continuous Integration (CI) and Continuous Deployment (CD) pipelines, allowing developers to automate various stages of the software development lifecycle.<\/p>\n<p>If you would like to follow a video tutorial please use our YouTube video.<\/p>\n<div class=\"wpex-responsive-embed\"><iframe loading=\"lazy\" title=\"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/tH_PgmnN6V4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<h1>Prerequisites<\/h1>\n<p><strong>GitHub Account<\/strong>: Ensure you have a GitHub account and a repository where your angular project is hosted.<br \/>\n<strong>AWS Account<\/strong>: An active AWS account with permissions to create and manage S3 buckets.<br \/>\n<strong>AWS S3 Bucket<\/strong>: Create an S3 bucket in your AWS account where you will deploy your project.<br \/>\n<strong>Jenkins Server<\/strong>: Install Jenkins on an EC2 instance or server.<\/p>\n<h1>Create IAM user<\/h1>\n<p>Go to <strong>IAM services<\/strong>, create a user with &#8220;<strong>EC2fullacess<\/strong>&#8221; and &#8220;<strong>S3fullaccess<\/strong>&#8221; permission. and download the access key and secret key<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-2.png\" alt=\"IAM user\" width=\"1702\" height=\"850\" class=\"aligncenter wp-image-3658 size-full\" title=\"IAM user\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-2.png 1702w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-2-300x150.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-2-1024x511.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-2-768x384.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-2-1536x767.png 1536w\" sizes=\"(max-width: 1702px) 100vw, 1702px\" \/><\/p>\n<h1>Setup S3 bucket<\/h1>\n<p>Go to<strong> S3 services<\/strong>, click &gt;&gt; <strong>create bucket<\/strong>, type &gt;&gt;<strong> bucket name<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-3.png\" alt=\"S3\" width=\"1687\" height=\"868\" class=\"aligncenter wp-image-3811 size-full\" title=\"S3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-3.png 1687w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-3-300x154.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-3-1024x527.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-3-768x395.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/1-3-1536x790.png 1536w\" sizes=\"(max-width: 1687px) 100vw, 1687px\" \/><\/p>\n<p>Unselect the &gt;&gt; <strong>block all access<\/strong>, select &gt;&gt; <strong>acknowledgement<\/strong>, click &gt;&gt; <strong>create bucket<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-1.png\" alt=\"S3 bucket\" width=\"1273\" height=\"811\" class=\"aligncenter wp-image-3660 size-full\" title=\"s3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-1.png 1273w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-1-300x191.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-1-1024x652.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-1-768x489.png 768w\" sizes=\"(max-width: 1273px) 100vw, 1273px\" \/><\/p>\n<p>Now we successfully created the bucket, click &gt;&gt; <strong>properties<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/2-5.png\" alt=\"S3\" width=\"1702\" height=\"907\" class=\"aligncenter wp-image-3812 size-full\" title=\"S3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/2-5.png 1702w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/2-5-300x160.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/2-5-1024x546.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/2-5-768x409.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/2-5-1536x819.png 1536w\" sizes=\"(max-width: 1702px) 100vw, 1702px\" \/><\/p>\n<p>Scroll down to see the <strong>static web hosting<\/strong>, click &gt;&gt;<strong> edit<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-1.png\" alt=\"static web hosting\" width=\"1704\" height=\"801\" class=\"aligncenter wp-image-3662 size-full\" title=\"static web hosting\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-1.png 1704w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-1-300x141.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-1-1024x481.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-1-768x361.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-1-1536x722.png 1536w\" sizes=\"(max-width: 1704px) 100vw, 1704px\" \/><\/p>\n<p>Click &gt;&gt;<strong> enable<\/strong>, In index document, type &gt;&gt; &#8220;<strong>index.html<\/strong>&#8220;, click &gt;&gt; <strong>save changes<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-1.png\" alt=\"Static web hosting\" width=\"1299\" height=\"811\" class=\"aligncenter wp-image-3663 size-full\" title=\"Static web hosting\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-1.png 1299w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-1-300x187.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-1-1024x639.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-1-768x479.png 768w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/p>\n<p>Now click &gt;&gt; <strong>permissions<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-2.png\" alt=\"S3\" width=\"1686\" height=\"838\" class=\"aligncenter wp-image-3814 size-full\" title=\"S3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-2.png 1686w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-2-300x149.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-2-1024x509.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-2-768x382.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/3-2-1536x763.png 1536w\" sizes=\"(max-width: 1686px) 100vw, 1686px\" \/><\/p>\n<p>In bucket policy, click &gt;&gt;<strong> edit<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-1.png\" alt=\"s3 bucket\" width=\"1618\" height=\"792\" class=\"aligncenter wp-image-3687 size-full\" title=\"Bucket policy\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-1.png 1618w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-1-300x147.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-1-1024x501.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-1-768x376.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-1-1536x752.png 1536w\" sizes=\"(max-width: 1618px) 100vw, 1618px\" \/><\/p>\n<p>Now click &gt;&gt; <strong>policy generator<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/4-2.png\" alt=\"S3\" width=\"1680\" height=\"805\" class=\"aligncenter wp-image-3815 size-full\" title=\"S3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/4-2.png 1680w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/4-2-300x144.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/4-2-1024x491.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/4-2-768x368.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/4-2-1536x736.png 1536w\" sizes=\"(max-width: 1680px) 100vw, 1680px\" \/><\/p>\n<p>In step 1 &#8211; select a type of policy, choose &gt;&gt;<strong> s3 bucket policy<\/strong><\/p>\n<p>In step2 &#8211; principle, type &gt;&gt; <strong>&#8221; * &#8220;<\/strong> , in AWS service, choose &gt;&gt; <strong>amazon S3<\/strong>, In actions,choose &gt;&gt;&#8221;<strong>GetObject<\/strong>&#8220;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-1.png\" alt=\"S3 bucket policy \" width=\"1693\" height=\"894\" class=\"aligncenter wp-image-3690 size-full\" title=\"policy generator\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-1.png 1693w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-1-300x158.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-1-1024x541.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-1-768x406.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-1-1536x811.png 1536w\" sizes=\"(max-width: 1693px) 100vw, 1693px\" \/><\/p>\n<p>In ARN go back to the previous page and copy the &gt;&gt;<strong> bucket ARN<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-2.png\" alt=\"S3\" width=\"1687\" height=\"826\" class=\"aligncenter wp-image-3816 size-full\" title=\"S3 policy\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-2.png 1687w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-2-300x147.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-2-1024x501.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-2-768x376.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/5-2-1536x752.png 1536w\" sizes=\"(max-width: 1687px) 100vw, 1687px\" \/><\/p>\n<p>Paste the bucket ARN here and click &gt;&gt;<strong> add statement.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-2.png\" alt=\"S3\" width=\"1498\" height=\"877\" class=\"aligncenter wp-image-3817 size-full\" title=\"S3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-2.png 1498w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-2-300x176.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-2-1024x599.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/6-2-768x450.png 768w\" sizes=\"(max-width: 1498px) 100vw, 1498px\" \/><\/p>\n<p>Click &gt;&gt;\u00a0<strong> generate policy<\/strong>, copy the policy<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/7-2.png\" alt=\"S3\" width=\"1543\" height=\"876\" class=\"aligncenter wp-image-3818 size-full\" title=\"S3 bucket \" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/7-2.png 1543w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/7-2-300x170.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/7-2-1024x581.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/7-2-768x436.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/7-2-1536x872.png 1536w\" sizes=\"(max-width: 1543px) 100vw, 1543px\" \/><\/p>\n<p>Go back to the previous page and paste the copied policy, add &#8220;<strong>\/*&#8221;<\/strong> in the 11th line and click &gt;&gt;<strong> save changes<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-2.png\" alt=\"S3\" width=\"1279\" height=\"834\" class=\"aligncenter wp-image-3820 size-full\" title=\"S3 bucket policy\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-2.png 1279w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-2-300x196.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-2-1024x668.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/8-2-768x501.png 768w\" sizes=\"(max-width: 1279px) 100vw, 1279px\" \/><\/p>\n<p>Now we set all the things in the s3 bucket<\/p>\n<h1>Jenkins server<\/h1>\n<p>This is my Jenkins server, I already installed Jenkins, open the Jenkins server.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-1.png\" alt=\"Jenkins\" width=\"1692\" height=\"819\" class=\"aligncenter wp-image-3669 size-full\" title=\"jenkins server\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-1.png 1692w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-1-300x145.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-1-1024x496.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-1-768x372.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-1-1536x743.png 1536w\" sizes=\"(max-width: 1692px) 100vw, 1692px\" \/><\/p>\n<p>Click &gt;&gt; <strong>Create a job<\/strong>, add &gt;&gt; <strong>name<\/strong>,choose &gt;&gt;<strong> pipeline<\/strong>, click &gt;&gt; <strong>ok<\/strong>.<\/p>\n<p>Select &gt;&gt; <strong>Github project<\/strong>, paste the GitHub project repository URL<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/9-3.png\" alt=\"Jenkins\" width=\"1599\" height=\"883\" class=\"aligncenter wp-image-3822 size-full\" title=\"Jenkins\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/9-3.png 1599w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/9-3-300x166.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/9-3-1024x565.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/9-3-768x424.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/9-3-1536x848.png 1536w\" sizes=\"(max-width: 1599px) 100vw, 1599px\" \/><\/p>\n<p>In build triggers, select &gt;&gt; <strong>github hook trigger<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-2.png\" alt=\"Jenkins\" width=\"1498\" height=\"892\" class=\"aligncenter wp-image-3823 size-full\" title=\"Jenkins pipeline\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-2.png 1498w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-2-300x179.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-2-1024x610.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/10-2-768x457.png 768w\" sizes=\"(max-width: 1498px) 100vw, 1498px\" \/><\/p>\n<p>In definition, choose &gt;&gt; <strong>pipeline script for SCM<\/strong>, In SCM choose &gt;&gt; <strong>git<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/11-1.png\" alt=\"Jenkins\" width=\"1648\" height=\"846\" class=\"aligncenter wp-image-3824 size-full\" title=\"Jenkins pipeline\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/11-1.png 1648w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/11-1-300x154.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/11-1-1024x526.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/11-1-768x394.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/11-1-1536x789.png 1536w\" sizes=\"(max-width: 1648px) 100vw, 1648px\" \/><\/p>\n<p>Add the github project repository url again, In credentials, click &gt;&gt;<strong> add<\/strong> , choose &gt;&gt;<strong> Jenkins<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/12-2.png\" alt=\"Jenkins\" width=\"1672\" height=\"883\" class=\"aligncenter wp-image-3825 size-full\" title=\"Jenkins aws credentials\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/12-2.png 1672w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/12-2-300x158.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/12-2-1024x541.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/12-2-768x406.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/12-2-1536x811.png 1536w\" sizes=\"(max-width: 1672px) 100vw, 1672px\" \/><\/p>\n<p>Choose &gt;&gt; <strong>AWS credentials<\/strong> (if it is not shown go to Jenkins main page, click manage jenkins, click plugin, and install AWS credentials plugin<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/13-2.png\" alt=\"Jenkins\" width=\"1657\" height=\"793\" class=\"aligncenter wp-image-3827 size-full\" title=\"Jenkins AWS credentials\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/13-2.png 1657w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/13-2-300x144.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/13-2-1024x490.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/13-2-768x368.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/13-2-1536x735.png 1536w\" sizes=\"(max-width: 1657px) 100vw, 1657px\" \/><\/p>\n<p>Add access key and secret key of the user that we created in the first step, and click &gt;&gt; <strong>add<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/14-2.png\" alt=\"Jenkins\" width=\"1389\" height=\"819\" class=\"aligncenter wp-image-3829 size-full\" title=\"Jenkins AWS credentials\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/14-2.png 1389w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/14-2-300x177.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/14-2-1024x604.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/14-2-768x453.png 768w\" sizes=\"(max-width: 1389px) 100vw, 1389px\" \/><\/p>\n<p>Click &gt;&gt; <strong>apply<\/strong> and <strong>save<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-2.png\" alt=\"Jenkins\" width=\"1707\" height=\"819\" class=\"aligncenter wp-image-3830 size-full\" title=\"Jenkins dashboard\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-2.png 1707w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-2-300x144.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-2-1024x491.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-2-768x368.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/15-2-1536x737.png 1536w\" sizes=\"(max-width: 1707px) 100vw, 1707px\" \/><\/p>\n<p>Now we successfully created a job, go to Jenkins main page, click &gt;&gt; <strong>manage Jenkins<\/strong>, and click &gt;&gt; <strong>credentials<\/strong>, here it will assign a credential id for the aws credentials, copy the credential id<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/16-2.png\" alt=\"Jenkins\" width=\"1693\" height=\"822\" class=\"aligncenter wp-image-3832 size-full\" title=\"Jenkins credentials\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/16-2.png 1693w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/16-2-300x146.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/16-2-1024x497.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/16-2-768x373.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/16-2-1536x746.png 1536w\" sizes=\"(max-width: 1693px) 100vw, 1693px\" \/><\/p>\n<h1>Setup Github<\/h1>\n<p>Go to github, add the credential id in the jenkins file<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/17-2.png\" alt=\"Jenkins \" width=\"1675\" height=\"847\" class=\"aligncenter wp-image-3833 size-full\" title=\"Jenkins credentials\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/17-2.png 1675w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/17-2-300x152.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/17-2-1024x518.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/17-2-768x388.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/17-2-1536x777.png 1536w\" sizes=\"(max-width: 1675px) 100vw, 1675px\" \/><\/p>\n<p>To reference my Jenkins file, please consult the file<strong> &#8220;jenkinsfile&#8221; <\/strong>located in the root directory of this repository: <a href=\"https:\/\/github.com\/easydeploy-cloud\/jenkins-cicd-angular\">https:\/\/github.com\/easydeploy-cloud\/jenkins-cicd-angular<\/a><\/p>\n<p>Now add S3 bucket name in the jenkinsfile<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/18-2.png\" alt=\"Github\" width=\"1654\" height=\"835\" class=\"aligncenter wp-image-3834 size-full\" title=\"S3 bucket\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/18-2.png 1654w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/18-2-300x151.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/18-2-1024x517.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/18-2-768x388.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/18-2-1536x775.png 1536w\" sizes=\"(max-width: 1654px) 100vw, 1654px\" \/><\/p>\n<p>Now go to Jenkins server copy the public ip<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/19-1.png\" alt=\"Jenkins\" width=\"1702\" height=\"888\" class=\"aligncenter wp-image-3835 size-full\" title=\"Jenkins job\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/19-1.png 1702w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/19-1-300x157.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/19-1-1024x534.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/19-1-768x401.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/19-1-1536x801.png 1536w\" sizes=\"(max-width: 1702px) 100vw, 1702px\" \/><\/p>\n<p>Go to github repository settings, click &gt;&gt; <strong>webhooks<\/strong>, click &gt;&gt; <strong>add webhook<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/20-1.png\" alt=\"Webhooks\" width=\"1699\" height=\"874\" class=\"aligncenter wp-image-3837 size-full\" title=\"Github webhooks\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/20-1.png 1699w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/20-1-300x154.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/20-1-1024x527.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/20-1-768x395.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/20-1-1536x790.png 1536w\" sizes=\"(max-width: 1699px) 100vw, 1699px\" \/><\/p>\n<p>Now paste the jenkins ip here and type &#8220;<strong>\/github-webhook<\/strong>&#8221; and click &gt;&gt; <strong>save<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/21-1.png\" alt=\"Github webhook\" width=\"1378\" height=\"819\" class=\"aligncenter wp-image-3839 size-full\" title=\"Github webhook\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/21-1.png 1378w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/21-1-300x178.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/21-1-1024x609.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/21-1-768x456.png 768w\" sizes=\"(max-width: 1378px) 100vw, 1378px\" \/><\/p>\n<h1>Jenkins job<\/h1>\n<p>Go to Jenkins dashboard, click &gt;&gt;<strong> your job<\/strong><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/22-1.png\" alt=\"Jenkins job\" width=\"1666\" height=\"826\" class=\"aligncenter wp-image-3848 size-full\" title=\"jenkins job\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/22-1.png 1666w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/22-1-300x149.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/22-1-1024x508.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/22-1-768x381.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/22-1-1536x762.png 1536w\" sizes=\"(max-width: 1666px) 100vw, 1666px\" \/><\/p>\n<p>Click &gt;&gt;<strong> build now<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/23-1.png\" alt=\"Jenkins job\" width=\"1269\" height=\"840\" class=\"aligncenter wp-image-3850 size-full\" title=\"Jenkins job\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/23-1.png 1269w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/23-1-300x199.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/23-1-1024x678.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/23-1-768x508.png 768w\" sizes=\"(max-width: 1269px) 100vw, 1269px\" \/><\/p>\n<p>Now our project is successfully buildt and deployed in s3<\/p>\n<h1><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/24-1.png\" alt=\"Jenkins job build\" width=\"1194\" height=\"817\" class=\"aligncenter wp-image-3851 size-full\" title=\"Jenkins job build\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/24-1.png 1194w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/24-1-300x205.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/24-1-1024x701.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/24-1-768x526.png 768w\" sizes=\"(max-width: 1194px) 100vw, 1194px\" \/><\/h1>\n<p>&nbsp;<\/p>\n<h1>Web hosting<\/h1>\n<p>Go to S3 service, choose your bucket, click &gt;&gt; <strong>properties<\/strong>, scroll down, and copy the static web hosting url<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/25-1.png\" alt=\"S3\" width=\"1689\" height=\"816\" class=\"aligncenter wp-image-3855 size-full\" title=\"Static web hosting\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/25-1.png 1689w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/25-1-300x145.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/25-1-1024x495.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/25-1-768x371.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/25-1-1536x742.png 1536w\" sizes=\"(max-width: 1689px) 100vw, 1689px\" \/><\/p>\n<p>paste it in the new tab<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/26-1.png\" alt=\"Angular app\" width=\"1690\" height=\"895\" class=\"aligncenter wp-image-3852 size-full\" title=\"Angular app\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/26-1.png 1690w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/26-1-300x159.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/26-1-1024x542.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/26-1-768x407.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/26-1-1536x813.png 1536w\" sizes=\"(max-width: 1690px) 100vw, 1690px\" \/><\/p>\n<p>Now our Angular project is successfully built and hosted in the S3 web hosting.<\/p>\n<p>Now I am going to change some content to check if the auto trigger is working properly or not.<\/p>\n<p>Go to GitHub project repository, I am changing some content on the main page(app.js), click &gt;&gt;<strong> commit changes.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/27-1.png\" alt=\"Angular app\" width=\"1714\" height=\"837\" class=\"aligncenter wp-image-3853 size-full\" title=\"Github repository\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/27-1.png 1714w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/27-1-300x146.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/27-1-1024x500.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/27-1-768x375.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/27-1-1536x750.png 1536w\" sizes=\"(max-width: 1714px) 100vw, 1714px\" \/><\/p>\n<p>The auto trigger is working properly, it successfully built the job and hosted it in the s3<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/28-1.png\" alt=\"Auto trigger deployment\" width=\"1072\" height=\"820\" class=\"aligncenter wp-image-3854 size-full\" title=\"Auto trigger deployment\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/28-1.png 1072w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/28-1-300x229.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/28-1-1024x783.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/28-1-768x587.png 768w\" sizes=\"(max-width: 1072px) 100vw, 1072px\" \/><\/p>\n<p>Go to the react js page, click &gt;&gt; r<strong>efresh button.<\/strong> Now the content has changed<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/29-1.png\" alt=\"React app\" width=\"1699\" height=\"894\" class=\"wp-image-3857 size-full alignnone\" title=\"react app\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/29-1.png 1699w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/29-1-300x158.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/29-1-1024x539.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/29-1-768x404.png 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/29-1-1536x808.png 1536w\" sizes=\"(max-width: 1699px) 100vw, 1699px\" \/><\/p>\n<p>setting up a Jenkins CI\/CD pipeline to build and deploy a angular app from GitHub to Amazon S3 involves:<\/p>\n<p>Configuring Jenkins with GitHub and AWS credentials.<br \/>\nCreating a Jenkins job to pull code from GitHub.<br \/>\nBuilding the Angular app.<br \/>\nDeploying the built files to an S3 bucket.<\/p>\n<p>This automated process ensures efficient, reliable, and consistent deployment of your application, allowing your team to focus on development rather than manual deployments.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we are going to cover a Jenkins CI\/CD pipeline to build and deploy a angular app from github to amazon s3. Jenkins is an open-source automation server that is widely used for building, testing, and deploying software projects. It provides a platform for implementing Continuous Integration (CI) and Continuous Deployment (CD) pipelines, [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":3873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3 | easydeploy.io<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3 | easydeploy.io\" \/>\n<meta property=\"og:description\" content=\"In this article, we are going to cover a Jenkins CI\/CD pipeline to build and deploy a angular app from github to amazon s3. Jenkins is an open-source automation server that is widely used for building, testing, and deploying software projects. It provides a platform for implementing Continuous Integration (CI) and Continuous Deployment (CD) pipelines, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\" \/>\n<meta property=\"og:site_name\" content=\"easydeploy.io\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-24T05:24:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-27T05:16:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1902\" \/>\n\t<meta property=\"og:image:height\" content=\"979\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Suryakumar KR\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Suryakumar KR\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\"},\"author\":{\"name\":\"Suryakumar KR\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/ddca6ab45d6281f710b0a73ec80b1aa2\"},\"headline\":\"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3\",\"datePublished\":\"2024-05-24T05:24:51+00:00\",\"dateModified\":\"2024-05-27T05:16:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\"},\"wordCount\":859,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png\",\"articleSection\":[\"Amazon Web Services\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\",\"name\":\"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3 | easydeploy.io\",\"isPartOf\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png\",\"datePublished\":\"2024-05-24T05:24:51+00:00\",\"dateModified\":\"2024-05-27T05:16:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png\",\"contentUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png\",\"width\":1902,\"height\":979},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.easydeploy.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#website\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/\",\"name\":\"easydeploy.io\",\"description\":\"A Cloud Architect Company\",\"publisher\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.easydeploy.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#organization\",\"name\":\"EasyDeploy Technologies Pvt Ltd\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png\",\"contentUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png\",\"width\":536,\"height\":100,\"caption\":\"EasyDeploy Technologies Pvt Ltd\"},\"image\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/ddca6ab45d6281f710b0a73ec80b1aa2\",\"name\":\"Suryakumar KR\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2951decabd8b3bc440c7b230ae32eef8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2951decabd8b3bc440c7b230ae32eef8?s=96&d=mm&r=g\",\"caption\":\"Suryakumar KR\"},\"sameAs\":[\"https:\/\/easydeploy.io\"],\"url\":\"https:\/\/www.easydeploy.io\/blog\/author\/suryakumar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3 | easydeploy.io","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/","og_locale":"en_GB","og_type":"article","og_title":"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3 | easydeploy.io","og_description":"In this article, we are going to cover a Jenkins CI\/CD pipeline to build and deploy a angular app from github to amazon s3. Jenkins is an open-source automation server that is widely used for building, testing, and deploying software projects. It provides a platform for implementing Continuous Integration (CI) and Continuous Deployment (CD) pipelines, [&hellip;]","og_url":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/","og_site_name":"easydeploy.io","article_published_time":"2024-05-24T05:24:51+00:00","article_modified_time":"2024-05-27T05:16:30+00:00","og_image":[{"width":1902,"height":979,"url":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png","type":"image\/png"}],"author":"Suryakumar KR","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Suryakumar KR","Estimated reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#article","isPartOf":{"@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/"},"author":{"name":"Suryakumar KR","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/ddca6ab45d6281f710b0a73ec80b1aa2"},"headline":"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3","datePublished":"2024-05-24T05:24:51+00:00","dateModified":"2024-05-27T05:16:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/"},"wordCount":859,"commentCount":0,"publisher":{"@id":"https:\/\/www.easydeploy.io\/blog\/#organization"},"image":{"@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png","articleSection":["Amazon Web Services"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/","url":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/","name":"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3 | easydeploy.io","isPartOf":{"@id":"https:\/\/www.easydeploy.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage"},"image":{"@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png","datePublished":"2024-05-24T05:24:51+00:00","dateModified":"2024-05-27T05:16:30+00:00","breadcrumb":{"@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#primaryimage","url":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png","contentUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-24-105356.png","width":1902,"height":979},{"@type":"BreadcrumbList","@id":"https:\/\/www.easydeploy.io\/blog\/how-to-set-up-jenkins-ci-cd-pipeline-to-build-and-deploy-an-angular-app-from-github-to-amazon-s3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.easydeploy.io\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Set up Jenkins CI\/CD Pipeline to Build and Deploy an Angular App from GitHub to Amazon S3"}]},{"@type":"WebSite","@id":"https:\/\/www.easydeploy.io\/blog\/#website","url":"https:\/\/www.easydeploy.io\/blog\/","name":"easydeploy.io","description":"A Cloud Architect Company","publisher":{"@id":"https:\/\/www.easydeploy.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.easydeploy.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.easydeploy.io\/blog\/#organization","name":"EasyDeploy Technologies Pvt Ltd","url":"https:\/\/www.easydeploy.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png","contentUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png","width":536,"height":100,"caption":"EasyDeploy Technologies Pvt Ltd"},"image":{"@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/ddca6ab45d6281f710b0a73ec80b1aa2","name":"Suryakumar KR","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2951decabd8b3bc440c7b230ae32eef8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2951decabd8b3bc440c7b230ae32eef8?s=96&d=mm&r=g","caption":"Suryakumar KR"},"sameAs":["https:\/\/easydeploy.io"],"url":"https:\/\/www.easydeploy.io\/blog\/author\/suryakumar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts\/3630"}],"collection":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/comments?post=3630"}],"version-history":[{"count":4,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts\/3630\/revisions"}],"predecessor-version":[{"id":3880,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts\/3630\/revisions\/3880"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/media\/3873"}],"wp:attachment":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/media?parent=3630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/categories?post=3630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/tags?post=3630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}