Skip to content

Commit

Permalink
apply template
Browse files Browse the repository at this point in the history
  • Loading branch information
florianvazelle committed Oct 30, 2024
0 parents commit 67446ca
Show file tree
Hide file tree
Showing 393 changed files with 10,189 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[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.3-stable

# Game

GAME_NAME=Greeter
GAME_VERSION=0.1.0
GAME_ITCHIO_KEY=greeter
11 changes: 11 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Properly detect languages on Github.
*.gd linguist-language=GDScript

# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

# The above only works properly for Git 2.10+, so for older versions
# we need to manually list the binary files we don't want modified.
*.mp3 binary
*.png binary
*.hdr binary
35 changes: 35 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"labels": ["skip-changelog"],
"customManagers": [
{
"customType": "regex",
"fileMatch": ["^plug\\.gd$"],
"matchStrings": [
"\\s+plug\\(\\s*\"(?<depName>.*)\",\\s+{\\s*\"commit\":\\s*\"(?<currentDigest>.*)\",\\s*\"renovate-branch\":\\s*\"(?<currentValue>.*)\""
],
"packageNameTemplate": "https://github.com/{{{depName}}}.git",
"versioningTemplate": "git",
"datasourceTemplate": "git-refs"
},
{
"customType": "regex",
"fileMatch": ["^plug\\.gd$"],
"matchStrings": [
"\\s+plug\\(\"(?<depName>.*?)\",\\ \\{\\s*\"tag\":\\ \"(?<currentValue>.*)\""
],
"packageNameTemplate": "https://github.com/{{{depName}}}.git",
"versioningTemplate": "git",
"datasourceTemplate": "git-tags"
},
{
"customType": "regex",
"fileMatch": ["^.env$"],
"matchStrings": ["GODOT_VERSION=(?<currentValue>.*?)\\n"],
"depNameTemplate": "godotengine/godot",
"packageNameTemplate": "https://github.com/godotengine/godot.git",
"versioningTemplate": "loose",
"extractVersionTemplate": "^(?<version>.*)$",
"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"
20 changes: 20 additions & 0 deletions .github/workflows/links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Link Checker

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

jobs:
linkchecker:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: lychee Link Checker
id: lychee
uses: lycheeverse/lychee-action@v2
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}}
31 changes: 31 additions & 0 deletions .github/workflows/lint_pr_title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
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
123 changes: 123 additions & 0 deletions .github/workflows/release-packaging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: Release Packaging

on:
push:
workflow_dispatch:

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

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

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

- 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-24.04
timeout-minutes: 30
needs: [check]

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

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

- name: Cache Godot
uses: actions/cache@v4
with:
path: |
~/.mkflower/bin
~/.local/share/godot/export_templates
key: ${{ env.godot_version }}

- 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-24.04
timeout-minutes: 30
needs: [check]

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

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

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

- name: Cache Godot
uses: actions/cache@v4
with:
path: |
~/.mkflower/bin
~/.local/share/godot/export_templates
key: ${{ env.godot_version }}

- 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-24.04
timeout-minutes: 30
needs: [build]

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

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

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

- name: Download artifact
uses: dawidd6/action-download-artifact@v6
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 ci-publish
env:
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 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/
!addons/export-build-info/

# Python-specific ignores
venv/

# Export output
dist/
build/
override.cfg
70 changes: 70 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
ci:
autofix_prs: false
autoupdate_commit_msg: 'chore(deps): Bump pre-commit hooks'
autoupdate_schedule: weekly
skip: [format-shaders]

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-added-large-files # Prevent giant files from being committed
args: ['--maxkb=1500']
- 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: v4.0.3
hooks:
- id: reuse
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
- repo: https://github.com/Scony/godot-gdscript-toolkit
rev: 4.3.2
hooks:
- id: gdformat
exclude: '^addons/gd-plug/'
- id: gdlint
exclude: '^addons/gd-plug/'
- repo: local
hooks:
- id: check-filenames-are-lowercase
name: check that filenames are lowercase
entry: filenames must be lower-case or lower_case only
language: fail
files: '[^a-z0-9._/-]'
exclude: |
(?x)^(
.godot/|
.reuse/|
addons/gd-plug/|
CHANGELOG.md|
CONTRIBUTING.md|
CREDITS.md|
Justfile|
LICENSE.md|
LICENSES/|
public/|
README.md|
RELEASING.md
)
- id: format-shaders
name: format shaders
entry: clang-format
args:
- --style=llvm
- -Werror
- -i
language: system
files: \.gdshader$
exclude: ^addons/gd-plug/
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 67446ca

Please sign in to comment.