Skip to content

Commit

Permalink
Prepare artifact for release to public repository (#5)
Browse files Browse the repository at this point in the history
* Added GitHub Actions for Maven build and updated README

* Change to project repository key in badges

* Added badges for monitoring repository and release activity

* [no ci] Added modules for project artifacts

* Added utility methods for LocalDate and LocalDateTime and corresponding test cases

* [no ci] Removed temporary module and merged code into main module

* Create tech stack docs (techstack.yml and techstack.md) (#2) (#3)

* Create techstack.yml

* Create techstack.md

---------

Co-authored-by: stack-file[bot] <147888899+stack-file[bot]@users.noreply.github.com>
Co-authored-by: stacksharebot <team@stackshare.io>

* Added documentation from StackShare

* Create tech stack docs (techstack.yml and techstack.md) (#2) (#4)

* Create techstack.yml

* Create techstack.md

---------

Co-authored-by: stack-file[bot] <147888899+stack-file[bot]@users.noreply.github.com>
Co-authored-by: stacksharebot <team@stackshare.io>

---------

Co-authored-by: stack-file[bot] <147888899+stack-file[bot]@users.noreply.github.com>
Co-authored-by: stacksharebot <team@stackshare.io>
  • Loading branch information
3 people authored Jun 8, 2024
1 parent 83584c0 commit f4693f5
Show file tree
Hide file tree
Showing 52 changed files with 5,786 additions and 0 deletions.
91 changes: 91 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
# push:
# branches: [ "main" ]
# pull_request:
# branches: [ "main" ]
schedule:
- cron: '26 2 * * 6'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
34 changes: 34 additions & 0 deletions .github/workflows/maven-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path

name: Maven Package

on:
release:
types: [created]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file

- name: Build with Maven
run: mvn -B package --file pom.xml

- name: Publish to GitHub Packages Apache Maven
run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
env:
GITHUB_TOKEN: ${{ github.token }}
37 changes: 37 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 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: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 20
uses: actions/setup-java@v3
with:
java-version: '20'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: |
cd primekit-essentials
mvn -B clean package -DskipTests
# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
#- name: Update dependency graph
# uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,43 @@
# PrimeKit

[![StackShare](http://img.shields.io/badge/tech-stack-0690fa.svg?style=flat)](https://stackshare.io/shortthirdman-org/prime-kit)

PrimeKit

## PrimeKit Essentials

A Java common library

![Github Created At](https://img.shields.io/github/created-at/shortthirdman-org/PrimeKit?logo=github&label=shortthirdman-org%2FPrimeKit&link=https%3A%2F%2Fgithub.com%2Fshortthirdman-org%2FPrimeKit)
![GitHub language count](https://img.shields.io/github/languages/count/shortthirdman-org/PrimeKit)
![GitHub commits since latest release](https://img.shields.io/github/commits-since/shortthirdman-org/PrimeKit/latest)

![GitHub](https://img.shields.io/github/license/shortthirdman-org/PrimeKit)
![GitHub issues](https://img.shields.io/github/issues/shortthirdman-org/PrimeKit)
![GitHub closed issues](https://img.shields.io/github/issues-closed/shortthirdman-org/PrimeKit)
![GitHub Workflow Status (with event and branch)](https://img.shields.io/github/actions/workflow/status/shortthirdman-org/PrimeKit/release.yml?event=push&branch=main)

## Tech Stack

shortthirdman-org/PrimeKit is built on the following main stack:



Full tech stack [here](/techstack.md)


## Community Resources

* [Release a Java Module with JReleaser to Maven Central with GitHub Actions](https://foojay.io/today/how-to-release-a-java-module-with-jreleaser-to-maven-central-with-github-actions/)
* [Publish a Java Maven Project to the Maven Central Repository](https://foojay.io/today/how-to-publish-a-java-maven-project-to-the-maven-central-repository/)
* [Publish Artifacts to Maven Central](https://www.jetbrains.com/help/space/publish-artifacts-to-maven-central.html)


## Reference Documentation
For further reference, please consider the following sections:

* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.2.6/maven-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.2.6/maven-plugin/reference/html/#build-image)
* [Spring Shell](https://spring.io/projects/spring-shell)

Loading

0 comments on commit f4693f5

Please sign in to comment.