Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
WilcoApp committed Dec 10, 2024
1 parent 367f687 commit de187c3
Show file tree
Hide file tree
Showing 122 changed files with 20,031 additions and 2,237 deletions.
24 changes: 24 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
WILCO_ID="`cat .wilco`"
CODESPACE_BACKEND_HOST=$(curl -s "${ENGINE_BASE_URL}/api/v1/codespace/backendHost?codespaceName=${CODESPACE_NAME}&portForwarding=${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}" | jq -r '.codespaceBackendHost')
CODESPACE_BACKEND_URL="https://${CODESPACE_BACKEND_HOST}"
export ENGINE_EVENT_ENDPOINT="${ENGINE_BASE_URL}/users/${WILCO_ID}/event"

# Update engine that codespace started for user
curl -L -X POST "${ENGINE_EVENT_ENDPOINT}" -H "Content-Type: application/json" --data-raw "{ \"event\": \"github_codespace_started\" }"

# Export backend envs when in codespaces
echo "export CODESPACE_BACKEND_HOST=\"${CODESPACE_BACKEND_HOST}\"" >> ~/.bashrc
echo "export CODESPACE_BACKEND_URL=\"${CODESPACE_BACKEND_URL}\"" >> ~/.bashrc
echo "export CODESPACE_WDS_SOCKET_PORT=443" >> ~/.bashrc

# Export welcome prompt in bash:
echo "printf \"\n\n☁️☁️☁️️ Anythink: Develop in the Cloud ☁️☁️☁️\n\"" >> ~/.bashrc
echo "printf \"\n\x1b[31m \x1b[1m👉 Type: \\\`docker compose up\\\` to run the project. 👈\n\n\"" >> ~/.bashrc

nohup bash -c "cd /wilco-agent && node agent.js &" >> /tmp/agent.log 2>&1

# Check if docker is installed
if command -v docker &> /dev/null
then
docker compose pull
fi
3 changes: 3 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
157 changes: 157 additions & 0 deletions .github/workflows/k8s.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
name: Build and deploy to Kubernetes
on:
push:
branches:
- main

concurrency:
group: k8s
cancel-in-progress: true

jobs:
check-kubernetes-enabled:
runs-on: ubuntu-20.04
outputs:
kubernetes-enabled: ${{ steps.kubernetes-flag-defined.outputs.DEFINED }}
steps:
- id: kubernetes-flag-defined
if: "${{ env.ENABLE_KUBERNETES != '' }}"
run: echo "DEFINED=true" >> $GITHUB_OUTPUT
env:
ENABLE_KUBERNETES: ${{ secrets.ENABLE_KUBERNETES }}

check-secret:
runs-on: ubuntu-20.04
needs: [check-kubernetes-enabled]
outputs:
aws-creds-defined: ${{ steps.aws-creds-defined.outputs.DEFINED }}
kubeconfig-defined: ${{ steps.kubeconfig-defined.outputs.DEFINED }}
if: needs.check-kubernetes-enabled.outputs.kubernetes-enabled == 'true'
steps:
- id: aws-creds-defined
if: "${{ env.AWS_ACCESS_KEY_ID != '' && env.AWS_SECRET_ACCESS_KEY != '' }}"
run: echo "DEFINED=true" >> $GITHUB_OUTPUT
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

- id: kubeconfig-defined
if: "${{ env.KUBECONFIG != '' }}"
run: echo "DEFINED=true" >> $GITHUB_OUTPUT
env:
KUBECONFIG: ${{ secrets.KUBECONFIG }}

build-backend:
name: Build backend image
runs-on: ubuntu-20.04
needs: [check-secret]
if: needs.check-secret.outputs.aws-creds-defined == 'true'
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Set the image tag
run: echo IMAGE_TAG=${GITHUB_REPOSITORY/\//-}-latest >> $GITHUB_ENV

- name: Set repository name
run: |
if [ ${{ secrets.CLUSTER_ENV }} == 'staging' ]; then
echo "REPO_NAME=staging-anythink-backend" >> $GITHUB_ENV
else
echo "REPO_NAME=anythink-backend" >> $GITHUB_ENV
fi
- name: Build, tag, and push backend image to Amazon ECR
id: build-image-backend
run: |
docker build \
-t ${{ steps.login-ecr.outputs.registry }}/${{ env.REPO_NAME }}:${{ env.IMAGE_TAG }} \
-f backend/Dockerfile.aws \
.
docker push ${{ steps.login-ecr.outputs.registry }}/${{ env.REPO_NAME }}:${{ env.IMAGE_TAG }}
build-frontend:
name: Build frontend images
runs-on: ubuntu-20.04
needs: [check-secret]
if: needs.check-secret.outputs.aws-creds-defined == 'true'
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Set the image tag
run: echo IMAGE_TAG=${GITHUB_REPOSITORY/\//-}-latest >> $GITHUB_ENV

- name: Set repository name
run: |
if [ ${{ secrets.CLUSTER_ENV }} == 'staging' ]; then
echo "REPO_NAME=staging-anythink-frontend" >> $GITHUB_ENV
else
echo "REPO_NAME=anythink-frontend" >> $GITHUB_ENV
fi
- name: Build, tag, and push frontend image to Amazon ECR
id: build-image-frontend
run: |
docker build \
-t ${{ steps.login-ecr.outputs.registry }}/${{ env.REPO_NAME }}:${{ env.IMAGE_TAG }} \
-f frontend/Dockerfile.aws \
.
docker push ${{ steps.login-ecr.outputs.registry }}/${{ env.REPO_NAME }}:${{ env.IMAGE_TAG }}
deploy:
name: Deploy latest tag using helm
runs-on: ubuntu-20.04
if: needs.check-secret.outputs.kubeconfig-defined == 'true'
needs:
- build-frontend
- build-backend
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Create kube config
run: |
mkdir -p $HOME/.kube/
echo "${{ secrets.KUBECONFIG }}" > $HOME/.kube/config
chmod 600 $HOME/.kube/config
- name: Install helm
run: |
curl -LO https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz
tar -zxvf helm-v3.8.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm version
- name: Lint helm charts
run: helm lint ./charts/

- name: Set the image tag
run: echo IMAGE_TAG=${GITHUB_REPOSITORY/\//-}-latest >> $GITHUB_ENV

- name: Deploy
run: |
helm upgrade --install --timeout 10m anythink-market ./charts/ \
--set clusterEnv=${{ secrets.CLUSTER_ENV }} \
--set frontend.image.tag=${{ env.IMAGE_TAG }} \
--set backend.image.tag=${{ env.IMAGE_TAG }}
24 changes: 0 additions & 24 deletions .github/workflows/wilco-actions.yml

This file was deleted.

Loading

0 comments on commit de187c3

Please sign in to comment.