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:
uses: actions/checkout@v3
- name: Install the gcloud CLI
uses: google-github-actions/setup-gcloud@v0
uses: google-github-actions/setup-gcloud@v2
with:
project_id: ${{ secrets.GOOGLE_PROJECT }}
service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
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
env:
PRODUCTION: staging
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: |
gcloud auth configure-docker us-central1-docker.pkg.dev
docker build -t us-central1-docker.pkg.dev/$GOOGLE_PROJECT/my-repository/authentication:latest .
docker push us-central1-docker.pkg.dev/$GOOGLE_PROJECT/my-repository/authentication:latest
\ No newline at end of file
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/staging-repository/authentication:latest
- 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
# Step 2: Use OpenJDK 21 to run the application
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
COPY --from=builder /app/target/authentication-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
......
......@@ -155,16 +155,6 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<version>0.8.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
......@@ -212,6 +202,25 @@
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
</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>
</build>
......
File moved
spring.application.name=authentication
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_PASSWORD}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.url=jdbc:postgresql://localhost:5432/be-authentication
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
......
spring.application.name=authentication
\ No newline at end of file
spring.application.name=authentication
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
\ No newline at end of file
spring.application.name=authentication
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