-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[codespell] | ||
skip = assets/**,addons/**,LICENSES/** | ||
ignore-words-list = lod,LOD |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Variables used by the Justfile | ||
|
||
# Godot | ||
|
||
GODOT_VERSION=4.2.2-stable | ||
|
||
# Game | ||
|
||
GAME_NAME=Frogger3D | ||
GAME_VERSION=0.1.0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# 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 | ||
|
||
# The .godot folder is generated and doesn't need to be committed, | ||
# but CI won't work without it, so mark it to be hidden by default in diffs. | ||
.godot/**/* linguist-generated=true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
{ | ||
"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" | ||
} | ||
] | ||
} |
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" |
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@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}} |
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 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
name: Release Packaging | ||
|
||
on: | ||
workflow_dispatch: | ||
# Ensure the build works on main | ||
push: | ||
branches: [main] | ||
tags: ['*'] | ||
# Ensure the build works on each pull request | ||
pull_request: | ||
|
||
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@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-22.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-22.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-22.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@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 ci-publish | ||
env: | ||
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | ||
GITHUB_TOKEN: ${{ secrets.PAT }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Godot-specific ignores | ||
.godot/* | ||
!.godot/imported/ | ||
!.godot/global_script_class_cache.cfg | ||
.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/ | ||
!addons/gh-release-checker/ | ||
|
||
# Python-specific ignores | ||
venv/ | ||
|
||
# Export output | ||
dist/ | ||
build/ | ||
override.cfg |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.