Fakultas Ilmu Komputer UI

Skip to content
Snippets Groups Projects
Commit bb542b4a authored by riorio805's avatar riorio805
Browse files

Merge remote-tracking branch 'refs/remotes/origin/staging' into login-registration

parents 13ac5df5 b0eb787f
Branches
No related tags found
1 merge request!1Login registration
DB_URL=jdbc:postgresql://localhost:5432/be-authentication
DB_USERNAME=postgres
DB_PASSWORD=postgres
...@@ -40,16 +40,39 @@ jobs: ...@@ -40,16 +40,39 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install the gcloud CLI - name: Install the gcloud CLI
uses: google-github-actions/setup-gcloud@v0 uses: google-github-actions/setup-gcloud@v2
with: with:
project_id: ${{ secrets.GOOGLE_PROJECT }} project_id: ${{ secrets.GOOGLE_PROJECT }}
service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }} service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
export_default_credentials: true export_default_credentials: true
- name: Authenticate with GCP
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
- name: Build and Push Docker Image - name: Build and Push Docker Image
env: env:
PRODUCTION: staging
GOOGLE_PROJECT: ${{ secrets.GOOGLE_PROJECT }} GOOGLE_PROJECT: ${{ secrets.GOOGLE_PROJECT }}
JDBC_STAGING_DATABASE_PASSWORD: ${{ secrets.JDBC_STAGING_DATABASE_PASSWORD }}
JDBC_STAGING_DATABASE_URL: ${{ secrets.JDBC_STAGING_DATABASE_URL }}
JDBC_STAGING_DATABASE_USERNAME: ${{ secrets.JDBC_STAGING_DATABASE_USERNAME }}
run: | run: |
gcloud auth configure-docker us-central1-docker.pkg.dev gcloud auth configure-docker us-central1-docker.pkg.dev
docker build -t us-central1-docker.pkg.dev/$GOOGLE_PROJECT/my-repository/authentication:latest . docker build --build-arg PRODUCTION=$PRODUCTION --build-arg JDBC_STAGING_DATABASE_PASSWORD=$JDBC_STAGING_DATABASE_PASSWORD --build-arg JDBC_STAGING_DATABASE_URL=$JDBC_STAGING_DATABASE_URL --build-arg JDBC_STAGING_DATABASE_USERNAME=$JDBC_STAGING_DATABASE_USERNAME -t us-central1-docker.pkg.dev/$GOOGLE_PROJECT/staging-repository/authentication:latest .
docker push us-central1-docker.pkg.dev/$GOOGLE_PROJECT/my-repository/authentication:latest docker push us-central1-docker.pkg.dev/$GOOGLE_PROJECT/staging-repository/authentication:latest
\ No newline at end of file
- name: Install required components
run: |
gcloud components update
gcloud components install gke-gcloud-auth-plugin
- name: Deploy to GKE
env:
GOOGLE_PROJECT: ${{ secrets.GOOGLE_PROJECT }}
GOOGLE_REPOSiTORY: staging-repository
run: |
gcloud container clusters get-credentials safetypin-staging --region asia-southeast2
sed -i "s/GOOGLE_PROJECT/$GOOGLE_PROJECT/g" staging.yaml
kubectl apply -f staging.yaml
\ No newline at end of file
...@@ -6,6 +6,24 @@ RUN mvn clean package -DskipTests ...@@ -6,6 +6,24 @@ RUN mvn clean package -DskipTests
# Step 2: Use OpenJDK 21 to run the application # Step 2: Use OpenJDK 21 to run the application
FROM openjdk:21-jdk-slim FROM openjdk:21-jdk-slim
# Setup envs
ARG PRODUCTION
ARG JDBC_DATABASE_PASSWORD
ARG JDBC_DATABASE_URL
ARG JDBC_DATABASE_USERNAME
ARG JDBC_STAGING_DATABASE_USERNAME
ARG JDBC_STAGING_DATABASE_URL
ARG JDBC_STAGING_DATABASE_URL
ENV PRODUCTION ${PRODUCTION}
ENV JDBC_DATABASE_PASSWORD ${JDBC_DATABASE_PASSWORD}
ENV JDBC_DATABASE_URL ${JDBC_DATABASE_URL}
ENV JDBC_DATABASE_USERNAME ${JDBC_DATABASE_USERNAME}
ENV JDBC_STAGING_DATABASE_PASSWORD ${JDBC_STAGING_DATABASE_PASSWORD}
ENV JDBC_STAGING_DATABASE_URL ${JDBC_STAGING_DATABASE_URL}
ENV JDBC_STAGING_DATABASE_USERNAME ${JDBC_STAGING_DATABASE_USERNAME}
WORKDIR /app WORKDIR /app
COPY --from=builder /app/target/authentication-0.0.1-SNAPSHOT.jar app.jar COPY --from=builder /app/target/authentication-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080 EXPOSE 8080
......
...@@ -155,16 +155,6 @@ ...@@ -155,16 +155,6 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<version>0.8.11</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
...@@ -212,6 +202,25 @@ ...@@ -212,6 +202,25 @@
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version> <version>3.2.0</version>
</plugin> </plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
......
File moved
spring.application.name=authentication spring.application.name=authentication
spring.datasource.url=${DB_URL} spring.datasource.url=jdbc:postgresql://localhost:5432/be-authentication
spring.datasource.username=${DB_PASSWORD} spring.datasource.username=postgres
spring.datasource.password=${DB_PASSWORD} spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
......
spring.application.name=authentication spring.application.name=authentication
\ No newline at end of file
spring.datasource.url=${JDBC_STAGING_DATABASE_URL}
spring.datasource.username=${JDBC_STAGING_DATABASE_USERNAME}
spring.datasource.password=${JDBC_STAGING_DATABASE_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
# Hibernate Properties
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
\ No newline at end of file
spring.application.name=authentication spring.application.name=authentication
\ No newline at end of file spring.profiles.active=${PRODUCTION:dev}
\ No newline at end of file
---
apiVersion: v1
kind: Service
metadata:
name: authentication
spec:
type: LoadBalancer
selector:
app: authentication
ports:
- port: 80
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: authentication
labels:
app: authentication
spec:
replicas: 1
selector:
matchLabels:
app: authentication
template:
metadata:
labels:
app: authentication
spec:
containers:
- name: authentication
image: us-central1-docker.pkg.dev/GOOGLE_PROJECT/staging-repository/authentication:latest
ports:
- containerPort: 8080
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment