Skip to content

Commit

Permalink
🎉 Initialize project closes #2
Browse files Browse the repository at this point in the history
Signed-off-by: Marcus Fihlon <[email protected]>
  • Loading branch information
McPringle committed Dec 15, 2024
0 parents commit d7c9f1a
Show file tree
Hide file tree
Showing 62 changed files with 10,094 additions and 0 deletions.
47 changes: 47 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"projectName": "komunumo",
"projectOwner": "McPringle",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"CONTRIBUTORS.md"
],
"imageSize": 100,
"commit": true,
"commitConvention": "gitmoji",
"badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg?style=flat-square)](#contributors)",
"contributors": [
{
"login": "McPringle",
"name": "Marcus Fihlon",
"avatar_url": "https://avatars.githubusercontent.com/u/1254039?v=4",
"profile": "https://github.com/McPringle",
"contributions": [
"projectManagement",
"ideas",
"code",
"design"
]
},
{
"login": "Interactiondesigner",
"name": "Interactiondesigner",
"avatar_url": "https://avatars.githubusercontent.com/u/17220369?v=4",
"profile": "https://github.com/Interactiondesigner",
"contributions": [
"design"
]
},
{
"login": "simasch",
"name": "Simon Martinelli",
"avatar_url": "https://avatars.githubusercontent.com/u/593352?v=4",
"profile": "https://github.com/simasch",
"contributions": [
"review"
]
}
],
"contributorsPerLine": 7,
"linkToUsage": false
}
590 changes: 590 additions & 0 deletions .editorconfig

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
MARIADB_DATABASE=komunumo
MARIADB_USER=komunumo
MARIADB_PASSWORD=komunumo
MARIADB_DATA=./.mariadb/data
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.bat text eol=crlf
mvnw eol=lf
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: "Maven"
directory: "/"
schedule:
interval: "daily"
time: "01:00"
commit-message:
prefix: "⬆️ "
20 changes: 20 additions & 0 deletions .github/workflows/add-to-project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Adds all issues to project board

on:
issues:
types:
- opened
pull_request_target:
types:
- opened

jobs:
add-to-project:
if: github.repository_owner == 'McPringle'
name: Add issue to project board
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
project-url: https://github.com/users/McPringle/projects/1
github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }}
30 changes: 30 additions & 0 deletions .github/workflows/all-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: All Tests

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
name: All Tests

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: ./mvnw verify
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_ORG_TOKEN }}
- name: Check clean git state
run: ./.github/workflows/check-clean-git-state.sh
6 changes: 6 additions & 0 deletions .github/workflows/check-clean-git-state.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
R=`git status --porcelain | wc -l`
if [ "$R" -ne "0" ]; then
echo "The git repository is not clean after compiling and testing. Did you forget to commit or ignore files?";
git status --porcelain
exit 1;
fi
94 changes: 94 additions & 0 deletions .github/workflows/docker-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Docker Nightly

on:
# This can be used to automatically publish nightlies at UTC nighttime
schedule:
- cron: "0 0 * * *" # run at midnight UTC
# This can be used to allow manually triggering nightlies from the web interface
workflow_dispatch:

jobs:
check-build:
runs-on: ubuntu-latest
name: Check latest build

outputs:
last-build-sha: ${{ fromJson(steps.check-last-build.outputs.data).workflow_runs[0].head_sha }}

steps:
- uses: octokit/[email protected]
id: check-last-build
with:
route: GET /repos/${{github.repository}}/actions/workflows/docker-nightly.yml/runs?per_page=1&status=completed
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: "echo Last daily build: ${{ fromJson(steps.check-last-build.outputs.data).workflow_runs[0].head_sha }}"

check-secrets:
runs-on: ubuntu-latest
name: Check secrets

outputs:
defined: ${{ steps.check-dockerhub-secrets.outputs.defined }}

steps:
- id: check-dockerhub-secrets
shell: bash
run: |
if [[ "${{ secrets.DOCKERHUB_USERNAME }}" != '' && "${{ secrets.DOCKERHUB_TOKEN }}" ]]; then
echo "defined=true" >> $GITHUB_OUTPUT;
else
echo "defined=false" >> $GITHUB_OUTPUT;
fi
build-publish:
if: needs.check-build.outputs.last-build-sha != github.sha && needs.check-secrets.outputs.defined == 'true'
runs-on: ubuntu-latest
name: Build and push Docker image
needs: [check-build, check-secrets]

steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Install Java 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'

- name: Build with Maven
run: ./mvnw clean package -Pproduction -e

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- id: lowercase-repo
name: Lowercase repository name
run: |
echo "repository=${GITHUB_REPOSITORY@L}" >> $GITHUB_OUTPUT
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.lowercase-repo.outputs.repository }}:nightly
platforms: linux/amd64,linux/arm64

- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: ${{ steps.lowercase-repo.outputs.repository }}
42 changes: 42 additions & 0 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Docker Release

on:
# This can be used to automatically publish releases
release:
types: [published]
# This can be used to allow manually triggering nightlies from the web interface
workflow_dispatch:

jobs:
docker:
if: github.repository_owner == 'McPringle'
runs-on: ubuntu-latest
name: Docker Release

steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: mcpringle/komunumo:${{ github.event.release.tag_name }}
platforms: linux/amd64
# platforms: linux/amd64,linux/arm64
24 changes: 24 additions & 0 deletions .github/workflows/outdated-dependency-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Outdated Dependency Check

on:
# This can be used to automatically check for outdated dependencies once a month
schedule:
- cron: "0 5 1 * *" # run at midnight UTC
# This can be used to allow manually triggering dependency checks from the web interface
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
name: Outdated Dependency Check

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Check for outdated dependencies
run: ./mvnw com.giovds:outdated-maven-plugin:check
67 changes: 67 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/target/
/.gradle
/build/
!**/src/main/**/target/
!**/src/test/**/target/
!**/src/main/**/build/
!**/src/test/**/build/

# The following files are often generated by operating systems or desktop environments
.DS_Store
Thumbs.db

# The following files are generated/updated by vaadin-maven-plugin or vaadin-gradle-plugin
/node_modules/
/src/main/frontend/generated/
/pnpmfile.js
/.npmrc
/webpack.generated.js
/vite.generated.ts

# Browser drivers for local integration tests
drivers/

# Error screenshots generated by TestBench for failed integration tests
error-screenshots/

# Eclipse and STS
/.apt_generated
/.classpath
/.factorypath
/.project
/.settings
/.springBeans
/.sts4-cache

# IntelliJ IDEA
/.idea
/*.iws
/*.iml
/*.ipr
/out/
!**/src/main/**/out/
!**/src/test/**/out/

# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

# VS Code
/.vscode/

# The following files are auto-generated by Vaadin if missing, but they should be added to source control if customized.
/tsconfig.json
/types.d.ts
/src/main/frontend/index.html

# Files used by Docker and MariaDB to run the database locally
/.env
/.mariadb/data

# Temporary Codecov files
codecov
codecov.SHA256SUM
codecov.SHA256SUM.sig
26 changes: 26 additions & 0 deletions .gitpod.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
FROM gitpod/workspace-full

RUN sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN sudo apt-get -q update
RUN sudo apt -y install ./google-chrome-stable_current_amd64.deb
RUN sudo apt-get -y install libnss3\
libnspr4\
libatk1.0-0\
libatk-bridge2.0-0\
libcups2\
libdrm2\
libxkbcommon0\
libxcomposite1\
libxdamage1\
libxfixes3\
libxrandr2\
libgbm1\
libgtk-3-0\
libatspi2.0-0\
libx11-xcb-dev
RUN sudo rm -rf /var/lib/apt/lists/*

RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh \
&& sdk update \
&& sdk install java 21.0.5-tem \
&& sdk default java 21.0.5-tem"
14 changes: 14 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
tasks:
- init: mvn package -Pproduction

command: mvn
ports:
- port: 8080
onOpen: open-preview
image:
file: .gitpod.Dockerfile
vscode:
extensions:
- [email protected]:llHUlx8TJ6tFKGa1t6dpLQ==
- [email protected]:gNh98vNbqtZC6ydHasFxAQ==
- [email protected]:1iLvjTfznJrV611qRUeOHg==
Loading

0 comments on commit d7c9f1a

Please sign in to comment.