update #56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy to Oracle Cloud VM | |
| on: | |
| push: | |
| branches: | |
| - dev_oracle | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| env: | |
| OCI_HOST: ${{ secrets.OCI_HOST }} | |
| OCI_USERNAME: ${{ secrets.OCI_USERNAME }} | |
| REPO_NAME: ${{ github.repository }} | |
| API_ENV_CONTENT: ${{ secrets.API_ENV_CONTENT }} | |
| SOCIAL_ENV_CONTENT: ${{ secrets.SOCIAL_ENV_CONTENT }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Configure SSH | |
| run: | | |
| mkdir -p ~/.ssh | |
| echo "${{ secrets.OCI_SSH_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa | |
| chmod 600 ~/.ssh/id_rsa | |
| echo "Host *" > ~/.ssh/config | |
| echo " StrictHostKeyChecking no" >> ~/.ssh/config | |
| echo " UserKnownHostsFile /dev/null" >> ~/.ssh/config | |
| - name: Create temp .env files | |
| run: | | |
| echo "$API_ENV_CONTENT" > api.env | |
| echo "$SOCIAL_ENV_CONTENT" > social.env | |
| - name: Upload .env files to Oracle VM | |
| run: | | |
| scp -i ~/.ssh/id_rsa api.env $OCI_USERNAME@$OCI_HOST:/home/$OCI_USERNAME/app/api-service/.env | |
| scp -i ~/.ssh/id_rsa social.env $OCI_USERNAME@$OCI_HOST:/home/$OCI_USERNAME/app/social-media-service/.env | |
| - name: Deploy to Oracle Cloud Instance | |
| run: | | |
| ssh -i ~/.ssh/id_rsa $OCI_USERNAME@$OCI_HOST <<EOF | |
| set -e | |
| echo "π Updating packages..." | |
| sudo dnf update -y | |
| echo "π³ Starting Docker..." | |
| sudo systemctl start docker || true | |
| sudo systemctl enable docker || true | |
| echo "π§Ή Preparing app directory..." | |
| APP_DIR="/home/$OCI_USERNAME/app" | |
| sudo rm -rf "\$APP_DIR" | |
| mkdir -p "\$APP_DIR" | |
| cd "\$APP_DIR" | |
| echo "π₯ Cloning latest code..." | |
| git clone --branch dev_oracle https://github.com/$REPO_NAME.git . | |
| echo "π¦ Verifying uploaded .env files..." | |
| ls -l ./api-service/.env || echo "β Missing API .env" | |
| ls -l ./social-media-service/.env || echo "β Missing Social .env" | |
| echo "π¦ Showing contents..." | |
| cat ./api-service/.env || echo "β Can't read API .env" | |
| cat ./social-media-service/.env || echo "β Can't read Social .env" | |
| echo "π§Ή Stopping containers..." | |
| docker-compose -f deploy/docker-compose.yml down || true | |
| echo "π Running deploy.sh..." | |
| chmod +x ./deploy.sh | |
| ./deploy.sh --up | |
| echo "π§Ό Cleaning Docker..." | |
| docker system prune -f || true | |
| EOF |