diff --git a/buildspec.yml b/buildspec.yml new file mode 100644 index 0000000..c62bc32 --- /dev/null +++ b/buildspec.yml @@ -0,0 +1,91 @@ +version: 0.2 + +env: + variables: + _PROJECT_NAME: "ui" + +phases: + install: + runtime-versions: + nodejs: 10 + docker: 18 + commands: + - echo install kubectl + - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl + - chmod +x ./kubectl + - mv ./kubectl /usr/local/bin/kubectl + pre_build: + commands: + - echo Logging in to Amazon ECR... + - echo $_PROJECT_NAME + - echo $AWS_ACCOUNT_ID + - echo $AWS_DEFAULT_REGION + - echo $CODEBUILD_RESOLVED_SOURCE_VERSION + - echo start command + - npm install + - $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION) + build: + commands: + - echo Build started on `date` + - echo Building the Docker image... + - npm run build + - docker build -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$_PROJECT_NAME:$CODEBUILD_RESOLVED_SOURCE_VERSION . + post_build: + commands: + - echo Pushing the Docker image... + - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$_PROJECT_NAME:$CODEBUILD_RESOLVED_SOURCE_VERSION + - echo connect kubectl + - kubectl config set-cluster k8s --server="$KUBE_URL" --insecure-skip-tls-verify=true + - kubectl config set-credentials admin --token="$KUBE_TOKEN" + - kubectl config set-context default --cluster=k8s --user=admin + - kubectl config use-context default + - _GATEWAY_IP=$(kubectl get -o jsonpath="{.status.loadBalancer.ingress[0].ip}" svc gateway --ignore-not-found) + - _GATEWAY_PORT=$(kubectl get -o jsonpath="{.spec.ports[0].port}" svc gateway --ignore-not-found) + - | + cat <