Generar un pipeline que te permita hacer un deploy de una aplicación a partir de cada commit en un branch de un repositorio es sumamente sencillo con Amplify. En este ejemplo utilizaré una aplicación React almacenada en un repositorio de Bitbucket, pero puede hacerse exactamente lo mismo con Github, GitLab y, obviamente, AWS CodeCommit.

Lo primero que se debe hacer es ingresar a la consola de Amazon Web Servicess -> Amplify e ir al menú de Amplify All apps -> New app -> Host web app, lo que te llevará a una pantalla en donde podrás conectar tu repositorio con Amplify: amplify-add-vcs

Selecciona Bitbucket y autoriza el acceso:

amplify-bitbucket-auth

Una vez que se ha autorizado el acceso deberías ver todos los repositorios a los que tengas acceso con tu cuenta de Bitbucket. Selecciona el repositorio y branch: amplify-add-branch

En el siguiente paso se podrá elegir un nombre para la aplicación y configurar los parámetros del build. No debería ser necesario que cambies nada aquí ya que Amplify detectará correctamente los pasos necesarios para instalar dependencias y hacer el build de la aplicación. En caso de que luego quieras cambiar o agregar algún paso, podrás editar más tarde este archivo desde la consola(o, mi opción preferida, descargarlo e incluirlo en la raíz de tu repositorio como amplify.yml para tenerlo versionado, ya que Amplify utilizará este archivo si existe en un repo )

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Por último, revisa la configuraciones y clickea en Save and deploy: amplify-review

Amplify comenzará el build y deploy de la aplicación en forma inmediata. En minutos estará disponible con https en una URL terminada en amplifyapp.com.

amplify-app-created

amplify-react-running

A partir de ahora, cualquier commit que hagas en el branch conectado con Amplify disparará un nuevo build y deploy de tu aplicación.

Próximos pasos