DEV Community

Marco Aguzzi
Marco Aguzzi

Posted on • Originally published at marcoaguzzi.it on

Website automation and what's next

Summary

This website is build with Hexo, a static NodeJS blog framework. It allows a developer to define pages, posts, and all the elements using markdown format. Then the framework compiles them into static html, and the website is ready to be deployed on an accessible repository.

The pipeline

Website code - Source

The code is hosted on Github, and each commit on the master branch fires a run in the CodeDeploy pipeline hosted on AWS. The website can be tested locally using the hexo framework before pushing the code

Build

The build runs on CodeBuild which: takes the code downloaded from github, compiles the website using the same commands as they were run locally, and prepares the artifact to be deployed

Deploy

The deploy just takes the zipfile artifact and deploys it unzipped on the s3 bucket that is served on the internet using cloudfront. Up to now a manual refresh cache is requested, but it could be automated.

Serving the content

In order to let cloudformation serve the content on S3, it is necessary to deploy a Lambda@edge that redirects the sub-pages

What’s next

Here’s a (surely incomplete) list of what it should be done on the website:

  • better documentation of the steps to try the website and deploy it
  • automate on cloudformation the deploy of the lambda that redirects the index.html on sub-pages
  • unify the dev and prod account in one account, allowing two different processes for dev and prod website and
    • keep pushes on the branches for deploying on dev website
    • use pushes on master to deploy on prod website

Top comments (0)