Skip to content

feat: 조회수 증가를 별도 API로 분리 (POST /posts/{id}/view) #21

feat: 조회수 증가를 별도 API로 분리 (POST /posts/{id}/view)

feat: 조회수 증가를 별도 API로 분리 (POST /posts/{id}/view) #21

Workflow file for this run

name: CI & CD
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
name: Run Rust Tests with Docker Compose DB
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Create .env file for Docker Compose
run: |
echo "PG__URL=${{ secrets.PG__URL }}" >> .env
echo "PG__USER=${{ secrets.PG__USER }}" >> .env
echo "PG__PASSWORD=${{ secrets.PG__PASSWORD }}" >> .env
echo "PG__HOST=${{ secrets.PG__HOST }}" >> .env
echo "PG__PORT=${{ secrets.PG__PORT }}" >> .env
echo "PG__DBNAME=${{ secrets.PG__DBNAME }}" >> .env
echo "PG__POOL__MAX_SIZE=${{ secrets.PG__POOL__MAX_SIZE }}" >> .env
- name: Start PostgreSQL via Docker Compose
run: |
set -a
source .env
set +a
docker compose up -d db
echo "Waiting for PostgreSQL to become ready..."
for i in {1..20}; do
if docker compose exec db psql -U "$PG__USER" -d "$PG__DBNAME" -c "SELECT 1" > /dev/null 2>&1; then
echo "✅ PostgreSQL is ready!"
break
fi
echo "⏳ PostgreSQL not ready yet… retry in 3s"
sleep 3
done
- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run cargo test
env:
PG__URL: ${{ secrets.PG__URL }}
PG__USER: ${{ secrets.PG__USER }}
PG__PASSWORD: ${{ secrets.PG__PASSWORD }}
PG__HOST: ${{ secrets.PG__HOST }}
PG__PORT: ${{ secrets.PG__PORT }}
PG__DBNAME: ${{ secrets.PG__DBNAME }}
PG__POOL__MAX_SIZE: ${{ secrets.PG__POOL__MAX_SIZE }}
ADMIN_USER: ${{ secrets.ADMIN_USER }}
ADMIN_PASS: ${{ secrets.ADMIN_PASS }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
run: |
cargo test --quiet
- name: Tear down Docker Compose
if: always()
run: docker compose down -v
deploy:
name: Deploy to Railway
needs: test
if: github.event_name == 'push'
runs-on: ubuntu-latest
container: ghcr.io/railwayapp/cli:latest
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Deploy to Railway
run: |
railway up --service portfolio-be