-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from gamedoora/ap_deploy
Closes #3: Deploy to dev server
- Loading branch information
Showing
6 changed files
with
184 additions
and
1 deletion.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
name: Build and Deploy | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- feat/ci-cd | ||
pull_request: | ||
branches: | ||
- main | ||
- feat/ci-cd | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up JDK | ||
uses: actions/setup-java@v2 | ||
with: | ||
java-version: '17' | ||
distribution: 'adopt' | ||
server-id: github | ||
server-username: GITHUB_USER_REF | ||
server-password: GITHUB_TOKEN_REF | ||
|
||
- name: Build with Maven | ||
run: mvn -B package --file pom.xml | ||
env: | ||
GITHUB_USER_REF: ${{ secrets.PACKAGE_ACCESS_USER }} | ||
GITHUB_TOKEN_REF: ${{ secrets.PACKAGE_ACCESS_TOKEN }} | ||
|
||
- name: Add execute permissions to script | ||
run: chmod +x ./deploy.sh | ||
|
||
- name: Copy JAR over SSH and restart service | ||
id: deploy | ||
run: ./deploy.sh | ||
env: | ||
SSH_PASS: ${{ secrets.SSH_PASSWORD }} | ||
SSH_USERNAME: ${{ secrets.SSH_USERNAME }} | ||
SSH_HOST: ${{ secrets.SSH_HOST }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
name: Publish | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up JDK | ||
uses: actions/setup-java@v2 | ||
with: | ||
java-version: '17' | ||
distribution: 'adopt' | ||
server-id: github | ||
server-username: GITHUB_USER_REF | ||
server-password: GITHUB_TOKEN_REF | ||
|
||
- name: Build with Maven | ||
run: mvn -B package --file pom.xml | ||
env: | ||
GITHUB_USER_REF: ${{ secrets.PACKAGE_ACCESS_USER }} | ||
GITHUB_TOKEN_REF: ${{ secrets.PACKAGE_ACCESS_TOKEN }} | ||
|
||
- name: Add execute permissions to script | ||
run: chmod +x ./check-version.sh | ||
|
||
- name: Check if version exists | ||
id: chkvrsn | ||
run: ./check-version.sh | ||
env: | ||
PAT: ${{ secrets.PACKAGE_ACCESS_TOKEN }} | ||
USER: ${{ secrets.PACKAGE_ACCESS_USER }} | ||
|
||
- name: Publish to GitHub Packages | ||
run: mvn deploy | ||
env: | ||
GITHUB_USER_REF: ${{ secrets.PACKAGE_ACCESS_USER }} | ||
GITHUB_TOKEN_REF: ${{ secrets.PACKAGE_ACCESS_TOKEN }} | ||
if: ${{ steps.chkvrsn.outputs.exists == 'false' }} | ||
|
||
## While I've used a common technique for publishing package to repositories, the process for publishing packages to GitHub Packages differs slightly. If any issues arise,replace the "Publish to GitHub Packages" stage above with the following stages. | ||
## Details are available here https://docs.github.com/en/actions/publishing-packages/publishing-java-packages-with-maven#publishing-packages-to-github-packages | ||
# - name: Set up JDK | ||
# uses: actions/setup-java@v2 | ||
# with: | ||
# java-version: '17' | ||
# distribution: 'adopt' | ||
# - name: Publish to GitHub Packages | ||
# run: mvn deploy | ||
# env: | ||
# GITHUB_TOKEN: ${{ secrets.PACKAGE_ACCESS_TOKEN }} | ||
# if: ${{ steps.chkvrsn.outputs.exists == 'false' }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#!/bin/bash | ||
|
||
JAR_FILE=target/*.jar | ||
REMOTE_DIRECTORY=/opt/gamedoora/ | ||
REMOTE_JAR_FILE=gamedoora-aggregation-proxy.jar | ||
|
||
echo $SSH_USERNAME | ||
echo $SSH_HOST | ||
|
||
# connect to the Server instance and set up the remote directory | ||
sshpass -p $SSH_PASS ssh -o StrictHostKeyChecking=no "$SSH_USERNAME@$SSH_HOST" " | ||
if [ -d $REMOTE_DIRECTORY ]; then | ||
cd $REMOTE_DIRECTORY | ||
if [ -f $REMOTE_JAR_FILE ]; then | ||
rm -f $REMOTE_JAR_FILE | ||
fi | ||
else | ||
mkdir -p $REMOTE_DIRECTORY | ||
fi" | ||
|
||
#COPY SYSTEMD INTO LOCAL | ||
DEST_PATH="/usr/lib/systemd/system/" | ||
echo "=====Copying files=========" | ||
pwd | ||
ls | ||
sshpass -p $SSH_PASS scp -o StrictHostKeyChecking=no ./gamedoora-aggregation-proxy.service "$SSH_USERNAME@$SSH_HOST:$DEST_PATH" | ||
echo "===========================" | ||
echo "==Stopping service=======" | ||
# Stop the service | ||
sshpass -p $SSH_PASS ssh -o StrictHostKeyChecking=no "$SSH_USERNAME@$SSH_HOST" 'sudo systemctl daemon-reload; sudo systemctl stop gamedoora-aggregation-proxy' | ||
echo "=========================" | ||
|
||
echo "=====Copying jars=========" | ||
|
||
# copy the new JAR file to the remote directory and rename it | ||
|
||
sshpass -p $SSH_PASS scp -v -o StrictHostKeyChecking=no $JAR_FILE "$SSH_USERNAME@$SSH_HOST:$REMOTE_DIRECTORY/$REMOTE_JAR_FILE" | ||
echo "==========================" | ||
echo "==Starting service=======" | ||
sshpass -p $SSH_PASS ssh "$SSH_USERNAME@$SSH_HOST" 'chown -R gamedoora:gamedoora /opt/gamedoora; chmod ug+rwx /opt/gamedoora/*.jar; systemctl restart gamedoora-aggregation-proxy; systemctl is-active --quiet gamedoora-aggregation-proxy && echo Service is running' | ||
echo "=========================" | ||
# # Check the exit status of the previous command and set an output variable accordingly | ||
|
||
if [ $? -eq 0 ]; then | ||
echo "::set-output name=status::success" | ||
else | ||
echo "::set-output name=status::failure" | ||
fi |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[Unit] | ||
Description=gamedoora-aggregation-proxy | ||
After=syslog.target gamedoora-config-server.service | ||
|
||
[Service] | ||
User=gamedoora | ||
ExecStart=/opt/gamedoora/gamedoora-aggregation-proxy.jar | ||
SuccessExitStatus=143 | ||
Environment="CONFIG_SERVER=http://localhost:8888" | ||
[Install] | ||
WantedBy=multi-user.target |
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
spring.application.name=aggregationproxy | ||
server.port=8090 | ||
spring.config.import=optional:configserver:${CONFIG_SERVER} |