Skip to content

Fix #102 - 동일한 강아지가 동일한 날짜에 다른 이용권으로 예약되는 문제 #158

Fix #102 - 동일한 강아지가 동일한 날짜에 다른 이용권으로 예약되는 문제

Fix #102 - 동일한 강아지가 동일한 날짜에 다른 이용권으로 예약되는 문제 #158

Workflow file for this run

name: Guest DEV CI
on:
pull_request:
branches: ["main", "develop"]
jobs:
CI:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.OWNER_ACCESS_TOKEN }}
submodules: true
fetch-depth: 0
- name: Set up QEMU for ARM64
uses: docker/setup-qemu-action@v2
with:
platforms: linux/arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: AWS configure
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Get changed files
id: changed-files-specific
uses: tj-actions/changed-files@v45
with:
files: |
docker/dev-package.Dockerfile
docker/dev.Dockerfile
docker/prod-package.Dockerfile
docker/prod.Dockerfile
pyproject.toml
poetry.lock
- name: Build dev-package docker image and push to ECR
id: build-and-push
if: steps.changed-files-specific.outputs.any_changed == 'true'
uses: docker/build-push-action@v5
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
with:
context: .
file: ./docker/dev-package.Dockerfile
platforms: linux/arm64
push: true
tags: |
${{ env.ECR_REGISTRY }}/mung-manager-guest-dev-package:latest
- name: Replace Dockerfile and docker-compose
run: |
sed -i 's|${DEV_PACKAGE_IMAGE}|${{ steps.login-ecr.outputs.registry }}/mung-manager-guest-dev-package:latest|' docker/dev.Dockerfile
sed -i 's|docker/local.Dockerfile|docker/dev.Dockerfile|' docker-compose.yml
- name: Create env file
env:
DJANGO_GUEST_ENV: ${{ secrets.DJANGO_GUEST_ENV }}
run: |
touch .env.guest
echo "$DJANGO_GUEST_ENV" >> .env.guest
- name: Build docker compose images for ARM64
env:
DOCKER_BUILDKIT: 1
COMPOSE_DOCKER_CLI_BUILD: 1
DOCKER_DEFAULT_PLATFORM: linux/arm64
run: |
docker compose build postgres_db guest_service redis
- name: Run isort
run: docker compose run guest_service poetry run isort mung_manager/ --check
- name: Run black
run: docker compose run guest_service poetry run black mung_manager/ --check
- name: Run flake8
run: docker compose run guest_service poetry run flake8
- name: Run mypy
run: docker compose run guest_service poetry run mypy --config mypy.ini mung_manager/
# - name: Run tests
# run: docker compose run guest_service poetry run pytest --cov=mung_manager --cov-fail-under=80 tests/ -n 4 &&
# docker compose run guest_service poetry run pytest --cov=mung_manager tests/ --cov-report=xml -n 4
# - name: Report coverage to codecov
# uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# fail_ci_if_error: false
- name: Notify Slack on Success
if: success()
id: slack-success
uses: slackapi/[email protected]
with:
payload: |
{
"channel": "${{ secrets.SLACK_CHANNEL_ID }}",
"attachments": [
{
"color": "#36a64f",
"title": "${{ github.repository }}",
"title_link": "https://github.com/${{github.repository}}",
"text": "GitHub Action Guest CI 성공 😄",
"fields": [
{
"title": "Repository",
"value": "${{ github.repository }}",
"short": true
},
{
"title": "Tag",
"value": "${{ github.ref_name }}",
"short": true
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: Notify Slack on Failure
if: failure()
id: slack-failure
uses: slackapi/[email protected]
with:
payload: |
{
"channel": "${{ secrets.SLACK_CHANNEL_ID }}",
"attachments": [
{
"color": "#ff0000",
"title": "${{ github.repository }}",
"title_link": "https://github.com/${{github.repository}}",
"text": "GitHub Action Guest CI 실패 😭",
"fields": [
{
"title": "Repository",
"value": "${{ github.repository }}",
"short": true
},
{
"title": "Tag",
"value": "${{ github.ref_name }}",
"short": true
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK