diff --git a/.gitea/workflows/gitea-ci.yml b/.gitea/workflows/gitea-ci.yml new file mode 100644 index 0000000..5a6a9a4 --- /dev/null +++ b/.gitea/workflows/gitea-ci.yml @@ -0,0 +1,28 @@ +name: Jb-ssg-site CI Pipeline +on: + push: + branches: + - main +jobs: + ci: + runs-on: ubuntu-latest + steps: + - name: Checkout the code. + uses: actions/checkout@v4 + - name: Calculate short git commit SHA. + run: echo "SHORT_SHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV + - name: Build the Docker image. + run: docker build -t git.jessebrault.com/jessebrault/jb-ssg-site:${{ env.SHORT_SHA }} . + - name: Tag built image as latest. + run: docker tag git.jessebrault.com/jessebrault/jb-ssg-site:${{ env.SHORT_SHA }} git.jessebrault.com/jessebrault/jb-ssg-site:latest + - name: Login to Docker Registry. + uses: docker/login-action@v3 + with: + registry: ${{ vars.DOCKER_REGISTRY }} + username: ${{ vars.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + logout: true + - name: Publish short commit SHA image to Docker registry. + run: docker push git.jessebrault.com/jessebrault/jb-ssg-site:${{ env.SHORT_SHA }} + - name: Publish latest image tag to Docker registry. + run: docker push git.jessebrault.com/jessebrault/jb-ssg-site:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e0c9c9d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM eclipse-temurin:21 AS build +LABEL authors="jessebrault" +WORKDIR /jb-ssg-site/ +COPY . . +RUN --mount=type=secret,id=JBARCHIVA_USERNAME,env=JBARCHIVA_USERNAME \ + --mount=type=secret,id=JBARCHIVA_PASSWORD,env=JBARCHIVA_PASSWORD \ + ./gradlew createSsgBinScript && \ + bin/ssg build -g && \ + ./gradlew installServerDist + +FROM eclipse-temurin:21 +LABEL authors="jessebrault" +WORKDIR /jb-ssg-site +COPY --from=build /jb-ssg-site/dist/ dist/ +COPY --from=build /jb-ssg-site/static/ static/ +COPY --from=build /jb-ssg-site/build/install/jb-ssg-site-server/ . +EXPOSE 8080 +CMD ["bin/JbServer"]