Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cloudy-sky-software/pulumi-simple-website

A simple website deployed on AWS using Pulumi with CI/CD configuration for Travis CI, CircleCI, GitLab
https://github.com/cloudy-sky-software/pulumi-simple-website

aws circleci gitlab infrastructure infrastructure-as-code pulumi static-site static-website travis-ci

Last synced: 3 days ago
JSON representation

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

Awesome Lists containing this project

README

        

[![Run on Repl.it](https://repl.it/badge/github/praneetloke/pulumi-simple-website)](https://repl.it/github/praneetloke/pulumi-simple-website)

# Static Website Hosted on AWS S3

A static website that uses [S3's website support](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html).
For a detailed walkthrough of this example, see the tutorial [Static Website on AWS S3](https://pulumi.io/quickstart/aws-s3-website.html).

## 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:

```bash
$ pulumi stack init website-testing
```

1. Set the AWS region:

```
$ pulumi config set aws:region us-west-2
```

1. Restore NPM modules via `npm install` or `yarn install`.

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

```bash
$ 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/***
```

1. To see the resources that were created, run `pulumi stack output`:

```bash
$ pulumi stack output
Current stack outputs (2):
OUTPUT VALUE
bucketName s3-website-bucket-***
websiteUrl ***.s3-website-us-west-2.amazonaws.com
```

1. To see that the S3 objects exist, you can either use the AWS Console or the AWS CLI:

```bash
$ 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
```

1. Open the site URL in a browser to see both the rendered HTML and the favicon:

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

![Hello S3 example](images/part2-website.png)

1. To clean up resources, run `pulumi destroy` and answer the confirmation question at the prompt.
1. 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](https://circleci.com/orbs/registry/orb/pulumi/pulumi))
* 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.