Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
florianvazelle authored Dec 31, 2023
0 parents commit f83cdd3
Show file tree
Hide file tree
Showing 40 changed files with 2,271 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

[codespell]
skip = assets/**,addons/**,LICENSES/**
ignore-words-list = lod,LOD
11 changes: 11 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Variables used by the Justfile

# Godot

GODOT_VERSION=4.2.1

# Game

GAME_NAME=Greeter
GAME_VERSION=0.1.0
GAME_ITCHIO_KEY=greeter
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf
*.gd linguist-language=GDScript
*.hdr binary
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: 2
updates:

- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
time: '00:00'
timezone: UTC
open-pull-requests-limit: 10
commit-message:
prefix: "chore"
include: "scope"
labels:
- "dependabot"
- "dependencies"
35 changes: 35 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"regexManagers": [
{
"fileMatch": ["^plug\\.gd$"],
"matchStrings": [
"\\s+plug\\(\"(?<gitUrl>.*?)\",\\ \\{\\s*\"commit\":\\ \"(?<currentValue>)(?<currentDigest>.*?)\""
],
"depNameTemplate": "{{{gitUrl}}}",
"packageNameTemplate": "https://github.com/{{{gitUrl}}}",
"versioningTemplate": "git",
"datasourceTemplate": "git-refs"
},
{
"fileMatch": ["^plug\\.gd$"],
"matchStrings": [
"\\s+plug\\(\"(?<gitUrl>.*?)\",\\ \\{\\s*\"tag\":\\ \"(?<currentValue>)(?<currentDigest>.*?)\""
],
"depNameTemplate": "{{{gitUrl}}}",
"packageNameTemplate": "https://github.com/{{{gitUrl}}}",
"versioningTemplate": "git",
"datasourceTemplate": "git-tags"
},
{
"fileMatch": ["^.env$"],
"matchStrings": [
"GODOT_VERSION=(?<currentValue>.*?)\\n"
],
"depNameTemplate": "godotengine/godot",
"packageNameTemplate": "https://github.com/godotengine/godot",
"versioningTemplate": "loose",
"extractVersionTemplate": "^(?<version>.*)-stable$",
"datasourceTemplate": "git-tags"
}
]
}
15 changes: 15 additions & 0 deletions .github/workflows/changelog_verifier.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Changelog Verifier

on:
pull_request:
types: [opened, edited, review_requested, synchronize, reopened, ready_for_review, labeled, unlabeled]

jobs:
# Enforces the update of a changelog file on every pull request
verify-changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dangoslen/changelog-enforcer@v3
with:
skipLabels: "autocut, skip-changelog"
30 changes: 30 additions & 0 deletions .github/workflows/dependabot_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Dependabot PR actions

on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]

jobs:
dependabot:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write

if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Update the changelog
uses: dangoslen/dependabot-changelog-helper@v3
with:
version: 'Unreleased'

- name: Commit the changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore(changelog): automatic update to add dependabot deps bump"
branch: ${{ github.head_ref }}
commit_user_name: dependabot[bot]
commit_user_email: [email protected]
19 changes: 19 additions & 0 deletions .github/workflows/links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Link Checker
on:
push:

jobs:
linkchecker:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: lychee Link Checker
id: lychee
uses: lycheeverse/lychee-action@v1
with:
args: --accept=200,403,429 "**/*.html" "**/*.md" "**/*.txt" "**/*.json" --exclude "file:///github/workspace/*" --exclude-path ".github/renovate.json" --exclude-mail
fail: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
34 changes: 34 additions & 0 deletions .github/workflows/lint_pr_title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Lint PR Title

on:
pull_request_target:
types:
- opened
- edited
- synchronize

permissions:
pull-requests: read

jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
scopes: |
addons
assets
scripts
scenes
dependabot
workflows
readme
changelog
deps
requireScope: false
validateSingleCommit: true
validateSingleCommitMatchesPrTitle: true
107 changes: 107 additions & 0 deletions .github/workflows/release-packaging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: Release Packaging

on:
push:
workflow_dispatch:

env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}

jobs:
check:
runs-on: ubuntu-22.04
timeout-minutes: 30

steps:
- uses: actions/checkout@v4
- uses: extractions/setup-just@v1

- name: Load dotenv
run: just ci-load-dotenv

- name: Check
run: just fmt

- name: Ensure version is equal to tag
if: startsWith(github.ref, 'refs/tags/')
run: |
[ "${{ env.game_version }}" == "${{ env.BRANCH_NAME }}" ] || exit 2
build:
runs-on: ubuntu-22.04
timeout-minutes: 30
needs: [check]

steps:
- uses: actions/checkout@v4
- uses: extractions/setup-just@v1

- name: Load dotenv
run: just ci-load-dotenv

- name: Export
run: just export

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.game_name }}-v${{ env.game_version }}
path: dist/*
retention-days: 1

deploy:
runs-on: ubuntu-22.04
timeout-minutes: 30
needs: [check]

if: github.ref == 'refs/heads/main'

steps:
- uses: actions/checkout@v4
- uses: extractions/setup-just@v1

- name: Load dotenv
run: just ci-load-dotenv

- name: Export
run: just export-web

# Installing rsync is needed in order to deploy to GitHub Pages. Without it, the build will fail.
- name: Install rsync
run: |
sudo apt-get update && sudo apt-get install -y rsync
- name: Deploy to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
folder: build/web

publish:
runs-on: ubuntu-22.04
timeout-minutes: 30
needs: [build]

if: startsWith(github.ref, 'refs/tags/')

steps:
- uses: actions/checkout@v4
- uses: extractions/setup-just@v1

- name: Load dotenv
run: just ci-load-dotenv

- name: Download artifact
uses: dawidd6/action-download-artifact@v3
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
name: ${{ env.game_name }}-v${{ env.game_version }}
path: dist/
skip_unpack: false

- name: Publish
run: just publish
env:
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Godot-specific ignores
.godot/
.import/
gfxrecon_capture_*

# Imported translations (automatically generated from CSV files)
*.translation

# Mono-specific ignores
.mono/
data_*/

# gd-plug
.plugged/
addons/*
!addons/gd-plug/

# Python-specific ignores
venv/

# Export output
dist/
build/
override.cfg
72 changes: 72 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: fix-byte-order-marker # Prevents weird UTF-8 encoding edge cases
- id: check-case-conflict # Check if case-insensitive filesystems would bork
- id: check-docstring-first # Check for if docstring was misplaced
- id: check-executables-have-shebangs
- id: check-json # Checks for valid json
- id: check-merge-conflict # Checks strings that look like a committed merge conflict
- id: check-xml # Checks for valid xml
- id: check-yaml # Checks for valid yaml
- id: end-of-file-fixer # Checks for ending with a newline
- id: mixed-line-ending # Consistent LF or CRLF
- id: trailing-whitespace # No trailing whitespace
- repo: https://github.com/fsfe/reuse-tool
rev: v2.0.0
hooks:
- id: reuse
- repo: https://github.com/codespell-project/codespell
rev: v2.2.5
hooks:
- id: codespell
- repo: local
hooks:
- id: lower-case-only
name: lower case only
entry: filenames must be lower-case or lower_case only
language: fail
files: '[^a-z0-9._/-]'
exclude: |
(?x)^(
.reuse/|
LICENSES/|
public/|
Justfile|
CONTRIBUTING.md|
CHANGELOG.md|
CREDITS.md|
LICENSE.md|
README.md
)
- id: check-gdscript
name: check gdscript
entry: gdformat
language: system
files: \.gd$
exclude: |
(?x)^(
addons/|
plug.gd
)
- id: check-shaders
name: check shaders
entry: clang-format
args:
- --style=llvm
- -Werror
- -i
language: system
files: \.gdshader$
exclude: ^addons/
- id: lint-gdscript
name: lint gdscript
entry: gdlint
language: system
files: \.gd$
exclude: |
(?x)^(
addons/|
plug.gd
)
1 change: 1 addition & 0 deletions .reuse/REUSE-compliant.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit f83cdd3

Please sign in to comment.