Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/ecr-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Upload image to ECR DEV
on:
push:
branches: ["dev"]
env:
AWS_REGION: ap-northeast-2 # set this to your preferred AWS region, e.g. us-west-1
ECR_REPOSITORY_K8S: siksha-dev/siksha-crawler

permissions:
contents: read

jobs:
deploy:
name: deploy dev
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

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

- name: Get current date
id: date
run: echo "::set-output name=date::$(date '+%Y-%m-%d-%H-%M-%S')"

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

- name: FOR K8S) Build, tag, and push image to Amazon ECR
id: build-image-k8s
env:
IMAGE_TAG: ${{ github.run_number }}
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
# Build a docker container and
# push it to ECR so that it can
# be deployed to ECS.
docker build --platform linux/amd64 -t $ECR_REGISTRY/$ECR_REPOSITORY_K8S:$IMAGE_TAG . \
--build-arg DB_HOST=${{ secrets.DB_HOST }} \
--build-arg DB_NAME=${{ secrets.DB_NAME_DEV }} \
--build-arg DB_USER=${{ secrets.DB_USER_DEV }} \
--build-arg DB_PASSWORD=${{ secrets.DB_PASSWORD_DEV }} \
--build-arg SLACK_TOKEN=${{ secrets.SLACK_TOKEN }} \
--build-arg SLACK_CHANNEL=${{ secrets.SLACK_CHANNEL_DEV }}

docker push $ECR_REGISTRY/$ECR_REPOSITORY_K8S:$IMAGE_TAG
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY_K8S:$IMAGE_TAG" >> $GITHUB_OUTPUT
54 changes: 54 additions & 0 deletions .github/ecr-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Upload image to ECR PROD
on:
push:
branches: ["prod"]
env:
AWS_REGION: ap-northeast-2 # set this to your preferred AWS region, e.g. us-west-1
ECR_REPOSITORY_K8S: siksha-prod/siksha-crawler

permissions:
contents: read

jobs:
deploy:
name: deploy prod
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

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

- name: Get current date
id: date
run: echo "::set-output name=date::$(date '+%Y-%m-%d-%H-%M-%S')"

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

- name: FOR K8S) Build, tag, and push image to Amazon ECR
id: build-image-k8s
env:
IMAGE_TAG: ${{ github.run_number }}
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
# Build a docker container and
# push it to ECR so that it can
# be deployed to ECS.
docker build --platform linux/amd64 -t $ECR_REGISTRY/$ECR_REPOSITORY_K8S:$IMAGE_TAG . \
--build-arg DB_HOST=${{ secrets.DB_HOST }} \
--build-arg DB_NAME=${{ secrets.DB_NAME }} \
--build-arg DB_USER=${{ secrets.DB_USER }} \
--build-arg DB_PASSWORD=${{ secrets.DB_PASSWORD }} \
--build-arg SLACK_TOKEN=${{ secrets.SLACK_TOKEN }} \
--build-arg SLACK_CHANNEL=${{ secrets.SLACK_CHANNEL }}

docker push $ECR_REGISTRY/$ECR_REPOSITORY_K8S:$IMAGE_TAG
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY_K8S:$IMAGE_TAG" >> $GITHUB_OUTPUT
25 changes: 25 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM python:3.10

ARG DB_HOST
ARG DB_NAME
ARG DB_USER
ARG DB_PASSWORD
ARG SLACK_TOKEN
ARG SLACK_CHANNEL

ENV DB_HOST $DB_HOST
ENV DB_PORT 3306
ENV DB_NAME $DB_NAME
ENV DB_USER $DB_USER
ENV DB_PASSWORD $DB_PASSWORD
ENV SLACK_TOKEN $SLACK_TOKEN
ENV SLACK_CHANNEL $SLACK_CHANNEL

COPY . /siksha-crawler
WORKDIR /siksha-crawler

COPY requirements.txt requirements.txt
RUN pip install --upgrade pip
RUN pip install -r requirements.txt

CMD ["python", "handler.py"]
3 changes: 1 addition & 2 deletions handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@ async def run_crawlers(crawlers):


def crawl_debug(**kwargs):

arg_date = kwargs.get("date")
arg_restaurant = kwargs.get("restaurant")

Expand Down Expand Up @@ -241,6 +240,7 @@ def crawl(event, context):
passwd=os.environ.get("DB_PASSWORD", "waffle"),
host=os.environ.get("DB_HOST", "127.0.0.1"),
db=os.environ.get("DB_NAME", "siksha"),
port=os.environ.get("DB_PORT", 3306),
charset="utf8",
)
cursor = siksha_db.cursor(pymysql.cursors.DictCursor)
Expand Down Expand Up @@ -279,7 +279,6 @@ def crawl(event, context):


if __name__ == "__main__":

# Parse args for debug
parser = argparse.ArgumentParser(description="debug option")
parser.add_argument("--restaurant", "-r", help="어떤 식당? 예시)자하연")
Expand Down