Porvisioning

Perlu login via ssh ke VM:

# lenovo.pem adalah nama file permission (key-pair) yang sudah dibuat sebelumnya
ssh -i ~/lenovo.pem ubuntu@ec2-13-250-111-189.ap-southeast-1.compute.amazonaws.com

[Sekali] Install docker

sudo apt-get update
sudo apt-get install docker.io

[Sekali] Ubah hak akses socket

sudo chmod 777 /var/run/docker.sock

[Sekali] Install docker-compose

sudo apt-get install python3-pip
sudo pip3 install docker-compose

[Sekali] Buka security group untuk port 8080 & 3306

Klik pada bagian link security group

Tambahkan inbound rule

[Sekali] Git clone

git clone https://github.com/goFrendiAsgard/alta-batch-3-ec2.git ~/app

[Sekali] Install go

wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
sudo rm -rf /usr/local/go 
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version

echo 'PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc

Deployment

[Setiap deploy] Git pull origin master

cd app
git pull origin main

[Setiap deploy] go test ./..

go test -v ./...

[Setiap deploy] docker-compose down && docker-compose up

docker-compose down && docker-compose up --build -d

Setup Github Action

Kita akan menggunakan SSH for GitHub Actions

Untuk itu kita perlu menambahkan beberapa secret:

Selain itu, kita juga perlu menambahkan deploy.yml

⚠️ NOTE: Pantau tab action, jika ada yang salah dan proses build memakan waktu yang lama, silahkan cancel workflow