Skip to content

A simple website deployed on AWS using Pulumi with CI/CD configuration for Travis CI, CircleCI, GitLab

Notifications You must be signed in to change notification settings

cloudy-sky-software/pulumi-simple-website

Repository files navigation

Run on Repl.it

Static Website Hosted on AWS S3

A static website that uses S3's website support. For a detailed walkthrough of this example, see the tutorial Static Website on AWS S3.

Deploying and running the program

Note: some values in this example will be different from run to run. These values are indicated with ***.

  1. Create a new stack:

    $ pulumi stack init website-testing
  2. Set the AWS region:

    $ pulumi config set aws:region us-west-2
    
  3. Restore NPM modules via npm install or yarn install.

  4. Run pulumi up to preview and deploy changes. After the preview is shown you will be prompted if you want to continue or not.

    $ pulumi up
    Previewing update of stack 'website-testing'
    Previewing changes:
    ...
    
    Updating stack 'website-testing'
    Performing changes:
    
        Type                    Name                                   Status      Info
    +   pulumi:pulumi:Stack     aws-js-s3-folder-website-testing  created
    +   ├─ aws:s3:Bucket        s3-website-bucket                      created
    +   ├─ aws:s3:BucketPolicy  bucketPolicy                           created
    +   ├─ aws:s3:BucketObject  favicon.png                            created
    +   └─ aws:s3:BucketObject  index.html                             created
    
    info: 5 changes performed:
        + 5 resources created
    Update duration: ***
    
    Permalink: https://app.pulumi.com/***
  5. To see the resources that were created, run pulumi stack output:

    $ pulumi stack output
    Current stack outputs (2):
        OUTPUT                                           VALUE
        bucketName                                       s3-website-bucket-***
        websiteUrl                                       ***.s3-website-us-west-2.amazonaws.com
  6. To see that the S3 objects exist, you can either use the AWS Console or the AWS CLI:

    $ aws s3 ls $(pulumi stack output bucketName)
    2018-04-17 15:40:47      13731 favicon.png
    2018-04-17 15:40:48        249 index.html
  7. Open the site URL in a browser to see both the rendered HTML and the favicon:

    $ pulumi stack output websiteUrl
    ***.s3-website-us-west-2.amazonaws.com

    Hello S3 example

  8. To clean up resources, run pulumi destroy and answer the confirmation question at the prompt.

  9. You may also remove the stack if you no longer need it, by running pulumi stack rm and following the on-screen prompts.

CI configuration

This project contains sample configuration for the following CI systems:

  • GitLab
  • Travis CI
  • CircleCI (uses the official Pulumi Orb)
  • Azure Pipelines - Coming Soon!
  • GitHub Actions - Coming Soon!

In each of the configuration files, the setup is the following:

  • Install Pulumi CLI
  • Run yarn install
  • Run pulumi preview for pull request builds
  • Run pulumi up for master branch merge builds
    • This is currently commented out in each of the CI configurations, instead, a message will be printed.
    • Simply remove the echo message and instead uncomment the line that runs the pulumi up command.

About

A simple website deployed on AWS using Pulumi with CI/CD configuration for Travis CI, CircleCI, GitLab

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published