Skip to content
This repository was archived by the owner on Feb 9, 2026. It is now read-only.

Merge pull request #496 from bounswe/feat/261-badges #44

Merge pull request #496 from bounswe/feat/261-badges

Merge pull request #496 from bounswe/feat/261-badges #44

name: Jobboard Backend Development Deployment
on:
push:
branches:
- dev
paths:
- "apps/jobboard-backend/**"
- ".github/workflows/backend-deploy-dev.yml"
concurrency:
group: backend-deploy-dev
cancel-in-progress: true
jobs:
build-and-deploy:
name: Build and Deploy to Cloud Run
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v3
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v3
- name: Configure Docker authentication for Artifact Registry
run: gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev --quiet --project ${{ env.PROJECT_ID }}
- name: Build and push Docker image to Artifact Registry
run: |
set -e
IMAGE="${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPO_NAME }}/jobboard-backend:dev-${{ github.sha }}"
docker build -t "$IMAGE" ./apps/jobboard-backend
docker push "$IMAGE"
echo "IMAGE=$IMAGE" >> $GITHUB_ENV
- name: Deploy to Cloud Run development environment
run: |
set -e
gcloud run deploy jobboard-backend-dev \
--image "${{ env.IMAGE }}" \
--region ${{ env.REGION }} \
--project ${{ env.PROJECT_ID }} \
--service-account jobboard-runtime@${{ env.PROJECT_ID }}.iam.gserviceaccount.com \
--allow-unauthenticated \
--port 8080 \
--memory 512Mi \
--cpu 1 \
--min-instances 0 \
--max-instances 1 \
--concurrency 80 \
--set-env-vars "APP_ENV=dev" \
--set-env-vars "SPRING_DATASOURCE_URL=jdbc:postgresql://ep-summer-lab-agmn03ff-pooler.c-2.eu-central-1.aws.neon.tech:5432/jobboard?sslmode=require" \
--set-env-vars "SPRING_DATASOURCE_USERNAME=jobboard_owner" \
--set-env-vars "APP_VERIFY_EMAIL_URL=https://bounswe-jobboard-dev.pages.dev/verify-email" \
--set-env-vars "APP_RESET_PASSWORD_URL=https://bounswe-jobboard-dev.pages.dev/reset-password" \
--set-env-vars "APP_CORS_ALLOWED_ORIGINS=https://bounswe-jobboard-dev.pages.dev" \
--set-env-vars "MAIL_USERNAME=apikey" \
--set-env-vars "APP_GCS_BUCKET=bounswe-jobboard" \
--set-env-vars "APP_MAIL_FROM=sezer.cot@bumk1974.com" \
--set-secrets "SPRING_DATASOURCE_PASSWORD=jobboard-neon-db-pass:latest" \
--set-secrets "APP_JWT_SECRET=jobboard-jwt-secret-dev:latest" \
--set-secrets "MAIL_PASSWORD=jobboard-mail-password:latest"
env:
PROJECT_ID: shadowops-dev
REGION: europe-west1
REPO_NAME: jobboard-containers