Skip to content

Merge pull request #99 from EveryUniv/feat/98 #50

Merge pull request #99 from EveryUniv/feat/98

Merge pull request #99 from EveryUniv/feat/98 #50

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Dev_CD
on:
push:
branches: [ "develop" ]
permissions:
contents: read
jobs:
build:
environment: dev
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/[email protected]
- name: Create .env
env:
ENV_NAME: ${{ secrets.ENV_NAME }}
ENV: ${{ secrets.ENV }}
run: |
touch ./$ENV_NAME
echo "$ENV" > ./$ENV_NAME
- name: Build
run: |
yarn add react-scripts
npm install -save react-scripts --legacy-peer-deps
CI=false npm run build
shell: bash
- name: Docker build and push
env:
USERNAME: ${{ secrets.DOCKER_USERNAME }}
PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
REPO: ${{ secrets.DOCKER_REPO }}
run: |
docker login -u $USERNAME -p $PASSWORD
docker build -t $USERNAME/$REPO:${GITHUB_SHA::7} -t $USERNAME/$REPO:latest .
docker push $USERNAME/$REPO:${GITHUB_SHA::7}
docker push $USERNAME/$REPO:latest
- name: SSH Remote Commands
uses: appleboy/[email protected]
env:
REPO: ${{ secrets.DOCKER_REPO }}
with:
host: ${{ secrets.SERVER_HOST }}
username: ubuntu
key: ${{ secrets.NEXT_PRIVATE_PEM_KEY }}
proxy_host: ${{ secrets.BASTION_IP }}
proxy_username: ubuntu
proxy_key: ${{ secrets.NEXT_PRIVATE_PEM_KEY }}
envs: GITHUB_SHA,REPO
script: |
docker pull ${{ secrets.DOCKER_USERNAME }}/$REPO:${GITHUB_SHA::7}
docker tag ${{ secrets.DOCKER_USERNAME }}/$REPO:${GITHUB_SHA::7} $REPO
docker stop $REPO
docker rm $REPO
docker run -d --name $REPO -p 8080:80 $REPO