Skip to content

LetsRecordIt Server Deploy with Gradle #8

LetsRecordIt Server Deploy with Gradle

LetsRecordIt Server Deploy with Gradle #8

Workflow file for this run

name: LetsRecordIt Server Deploy with Gradle
on:
pull_request:
branches:
- main
types:
- closed
workflow_dispatch:
jobs:
setup-build-publish-deploy:
# if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle Wrapper
run: ./gradlew clean build
- name: Docker build
run: |
docker build --no-cache -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }} .
- name: Docker Hub Login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Docker Hub Publish
run: docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:latest
- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.GCP_VM_IP }}
username: ${{ secrets.GCP_USERNAME }}
key: ${{ secrets.GCP_SSH_PRIVATE_KEY }}
envs: GITHUB_SHA
script: |
docker ps -q -f letsrecordit-image-server && docker stop letsrecordit-image-server && docker rm letsrecordit-image-server
docker images -q ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:latest && docker rmi ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:latest
sudo docker-compose up -d