-
Notifications
You must be signed in to change notification settings - Fork 0
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 #15 from BME-MIT-IET/ci-cd
CI/CD and deployment
- Loading branch information
Showing
6 changed files
with
143 additions
and
10 deletions.
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,38 @@ | ||
# This workflow will build a Java project with Maven, 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-maven | ||
|
||
# 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. | ||
|
||
name: Java CI with Maven | ||
|
||
on: | ||
push: | ||
branches: | ||
- '*' | ||
pull_request: | ||
branches: | ||
- '*' | ||
workflow_dispatch: | ||
branches: | ||
- '*' # Allow manual triggering of workflow | ||
|
||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up JDK 11 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '11' | ||
distribution: 'adopt' | ||
|
||
- name: Build with Maven | ||
run: mvn -f "./Sivatagi vizhalozatok uzemeltetese a gyakorlatban 2/pom.xml" clean verify package |
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 |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
*.iml | ||
*.class | ||
*.xml | ||
!pom.xml | ||
*.bat | ||
*.name | ||
*.project | ||
|
24 changes: 24 additions & 0 deletions
24
Sivatagi vizhalozatok uzemeltetese a gyakorlatban 2/doc/ci-cd.md
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,24 @@ | ||
# Vízhálózat játék CI-CD | ||
|
||
Ez a dokumentum leírja a projekthez készített és felhasznált CI-CD rendszereket. A megvalósítás fő vektora a GitHub Actions volt. | ||
|
||
## Részfeladatok | ||
# 1. Maven beüzemelése | ||
Az eredeti projekt Mavent használt a program fordításához és futtatásához. Ez többnyire működőképes volt, de a pom.xml fájlon változtatni kellett a kívánt hatás eléréséhez. | ||
|
||
Fel kellett venni a maven compiler és jar pluginokat, ezek segítségével a projekt forráskódja fordítható, és további függőségektől mentes, önálló .jar fájlba csomagolható. | ||
A kapott fájl bármilyen, a Java 11-es verzióját támogató környezetben futtatható, JDK telepítése nélkül, kizárólag a JRE használatával. | ||
|
||
# 2. GitHub Actions | ||
A GitHub Actions lehetővé teszi repository-k automata tesztelését, ellenőrzését, futtatását. A projekt másik egységében ezt a SonarCloud-hoz is kihasználtuk. | ||
|
||
Az általam létrehozott action a következő lépéseket hajtja végre: | ||
1. A legújabb stabil Ubuntu verzió használata | ||
2. A projekt forráskódjának lemásolása | ||
3. 11-es verziójú AdoptOpenJDK telepítése | ||
4. A projekt buildelése a maven pom fájl segítségével, tesztekkel, tisztítással és csomagolással | ||
|
||
Amennyiben ezek a lépések mind sikeresek, nagy bizonyossággal állíthatjuk, hogy a projekt futtatható a specifikált környezetben. | ||
A sikert zöld pipa jelzi, a hibát piros X; ez utóbbi esetben értesítést kapunk a repository beállításai szerint. | ||
|
||
Wendl Csongor (HZERYX) - 2024 |
28 changes: 28 additions & 0 deletions
28
Sivatagi vizhalozatok uzemeltetese a gyakorlatban 2/doc/docker.md
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,28 @@ | ||
# Vízhálózat játék deployment (Docker) | ||
|
||
Ez a dokumentum leírja a projekthez készített és felhasznált konténerizációs és deploy megoldásokat. A megvalósítás fő vektora a Docker volt. | ||
|
||
## Részfeladatok | ||
# 1. Dockerfile készítése | ||
A dockerfile írja le, hogy egy adott docker image elkészítéséhez milyen lépéseket kell végrehajtani. Ebben az esetben a lépések a következők: | ||
- standard docker maven+openjdk11 image használatával: | ||
- a projekt forráskódjának lemásolása, buildelése | ||
- standard docker openjdk11 image használatával: | ||
- xauth és egyéb függőségek telepítése (lásd lejjebb: X11) | ||
- X11 kijelző célpont beállítása (docker virtuális) | ||
- kész .jar és adatfájlok másolása | ||
- VNC port nyitása | ||
- jar file futtatása | ||
# 2. Docker image futtatása | ||
A docker image buildelhető így: | ||
docker build -t IMAGE_NÉV . | ||
A docker image futtatása a következő paranccsal történik: | ||
docker run -e DISPLAY=host.docker.internal:0.0 --name CONTAINER_NÉV IMAGE_NÉV | ||
|
||
A program ezután natív ablakként jelenik meg a host gépen és játszható. | ||
|
||
# Információ: X11 | ||
Az X11 kijelzőszerver Unix rendszereken gyári felszereltségnek tekinthető, viszont Windows esetében ez nem adott. A program csakis grafikus felülettel rendelkezik, így a futtatáshoz elengedhetetlen az X11 szerver megléte. | ||
Windowson erre például az Xming alkalmas, telepítése és futtatása elegendő. A dockerfile beállítja a megfelelő dockeres virtuális kijelzőt, ennek eredményeként a játék natív Windows ablakként jelenik meg és játszható. | ||
|
||
Wendl Csongor (HZERYX) - 2024 |
28 changes: 28 additions & 0 deletions
28
Sivatagi vizhalozatok uzemeltetese a gyakorlatban 2/dockerfile
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,28 @@ | ||
# Build with maven | ||
FROM maven:3.8.6-openjdk-11 AS builder | ||
|
||
WORKDIR /app | ||
COPY pom.xml . | ||
COPY src ./src | ||
|
||
RUN mvn clean package | ||
|
||
# Create the runtime image | ||
FROM openjdk:11 | ||
|
||
RUN apt-get update && apt-get install -y \ | ||
xauth \ | ||
libxrender1 \ | ||
libxtst6 \ | ||
libxi6 | ||
|
||
# X11 env variable | ||
ENV DISPLAY=host.docker.internal:0.0 | ||
|
||
WORKDIR /app | ||
COPY --from=builder /app/target/*.jar /app/app.jar | ||
COPY --from=builder /app/src/palya.txt /app/src/palya.txt | ||
|
||
# Expose VNC port | ||
EXPOSE 5800 5900 | ||
CMD ["java", "-jar", "/app/app.jar"] |
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