grzegorz-bielski / aws-ci-dashboard

Alternative UI for the AWS CodePipeline as a full stack Scala 3 app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

aws-ci-dashboard

This is a full-stack Scala app which could be used as an alternative UI for AWS CodePipeline service.

It's not terribly feature rich, and has few bugs. It was mostly used as a playground for trying Scala 3 with ScalaJS, Laminar and ZIO.

Setup

  1. Install Scala & friends through coursier with
    cs setup
    
  2. Install Node & JS dependencies through nvm and
    npm install
    
  3. Create .env file in the root of the project with
    AWS_ACCESS_KEY_ID=<aws access key id for the Dashboard IAM user>
    AWS_SECRET_ACCESS_KEY=<aws secret access key for the Dashboard IAM user>
    APP_PORT=8090
    AWS_REGION=eu-central-1
    AWS_ACCOUNT=<your aws account number with given IAM user>
    

Development

Open three terminal windows that will:

  • Compile Scala.js frontend files in watch mode

    ./sbt.sh "~frontend/fastLinkJS"
    
  • Compile backend files in watch mode & restarts the server

    ./sbt.sh "~backend/reStart"
    
  • Run the snowpack bundler in watch mode for any other frontend resources

    npm run snowpack -- dev
    

Serving a prod built with sbt

./sbt.sh "~frontend/fullLinkJS"
npm run snowpack -- build
./sbt.sh "backend/run"

Prod

Build and push Docker image to the local repository:

./sbt.sh build
./sbt.sh backend/publishLocal

Build and deploy to AWS Fargate

./sbt.sh build
./deploy.sh

About

Alternative UI for the AWS CodePipeline as a full stack Scala 3 app


Languages

Language:Scala 88.2%Language:SCSS 3.7%Language:TypeScript 2.5%Language:Shell 2.1%Language:JavaScript 1.9%Language:HTML 1.6%