Skip to content

Deploy

Deploy #11

Workflow file for this run

name: Deploy
on:
pull_request:
branches: ["main"]
types: ["closed"]
workflow_dispatch:
jobs:
build:
name: Build Go App
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- name: Install dependencies
run: go mod tidy
- name: Build the Go app
run: make build
- name: Create build directory and .env file
run: |
mkdir -p build
echo "DEPLOY_ENV=production" >> build/.env
echo "DB_USER=${{ vars.DB_USER }}" >> build/.env
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> build/.env
echo "DB_NAME=${{ vars.DB_NAME }}" >> build/.env
echo "DB_HOST=${{ vars.DB_HOST }}" >> build/.env
echo "DB_PORT=${{ vars.DB_PORT }}" >> build/.env
echo "DB_SSLMODE=${{ vars.DB_SSLMODE }}" >> build/.env
echo "CORS_ALLOWED_ORIGINS=${{ vars.CORS_ALLOWED_ORIGINS }}" >> build/.env
echo "GIN_MODE=production" >> build/.env
cp bin/portfolio-backend build/
ls -al build
- name: Send build folder to AWS
uses: easingthemes/ssh-deploy@main
with:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
REMOTE_HOST: ${{ vars.REMOTE_HOST }}
REMOTE_USER: ubuntu
SOURCE: "build/"
TARGET: "~/portfolio-builder/backend"
SCRIPT_AFTER: |
sudo systemctl restart portfolio-builder.service