Skip to content

Commit

Permalink
feat: vpm packaging and vcc listing infrastructure
Browse files Browse the repository at this point in the history
  • Loading branch information
Naraenda committed Jun 27, 2024
1 parent 5b90abf commit e5ffd2c
Show file tree
Hide file tree
Showing 27 changed files with 1,129 additions and 3 deletions.
79 changes: 79 additions & 0 deletions .github/workflows/build-listing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Build Repo Listing
# https://github.com/vrchat-community/template-package/blob/main/.github/workflows/build-listing.yml

env:
listPublishDirectory: Website
pathToCi: ci

on:
workflow_dispatch:
workflow_run:
workflows: [Build Release]
types:
- completed
release:
types: [published, created, edited, unpublished, deleted, released]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:

# Build the VPM Listing Website and deploy to GitHub Pages
build-listing:
name: build-listing
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:

# Checkout Local Repository
- name: Checkout Local Repository
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac

# Checkout Automation Repository without removing prior checkouts
- name: Checkout Automation Repository
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
with:
repository: vrchat-community/package-list-action
path: ${{ env.pathToCi }}
clean: false

# Load cached data from previous runs
- name: Restore Cache
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84
with:
path: |
${{ env.pathToCi }}/.nuke/temp
~/.nuget/packages
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}

# Build Package Version Listing with Nuke
- name: Build Package Version Listing
run: ${{ env.pathToCi }}/build.cmd BuildRepoListing --root ${{ env.pathToCi }} --list-publish-directory $GITHUB_WORKSPACE/${{ env.listPublishDirectory }} --current-package-name ${{ vars.PACKAGE_NAME }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Prepare for GitHub Pages deployment
- name: Setup Pages
uses: actions/configure-pages@f156874f8191504dae5b037505266ed5dda6c382

# Upload the VPM Listing Website to GitHub Pages artifacts
- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@a753861a5debcf57bf8b404356158c8e1e33150c
with:
path: ${{ env.listPublishDirectory }}

# Deploy the uploaded VPM Listing Website to GitHub Pages
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@9dbe3824824f8a1377b8e298bafde1a50ede43e5
88 changes: 88 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Build Release
# https://github.com/vrchat-community/template-package/blob/main/.github/workflows/release.yml

on:
workflow_dispatch:

jobs:

# Validate Repository Configuration
config:
runs-on: ubuntu-latest
outputs:
config_package: ${{ steps.config_package.outputs.configPackage }}
steps:

# Ensure that required repository variable has been created for the Package
- name: Validate Package Config
id: config_package
run: |
if [ "${{ vars.PACKAGE_NAME }}" != "" ]; then
echo "configPackage=true" >> $GITHUB_OUTPUT;
else
echo "configPackage=false" >> $GITHUB_OUTPUT;
fi
# Build and release the Package
# If the repository is not configured properly, this job will be skipped
build:
needs: config
runs-on: ubuntu-latest
permissions:
contents: write
env:
packagePath: Packages/${{ vars.PACKAGE_NAME }}
if: needs.config.outputs.config_package == 'true'
steps:

# Checkout Local Repository
- name: Checkout
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac

# Get the Package version based on the package.json file
- name: Get Version
id: version
uses: zoexx/github-action-json-file-properties@b9f36ce6ee6fe2680cd3c32b2c62e22eade7e590
with:
file_path: "${{ env.packagePath }}/package.json"
prop_path: "version"

# Configure the Environment Variables needed for releasing the Package
- name: Set Environment Variables
run: |
echo "zipFile=${{ vars.PACKAGE_NAME }}-${{ steps.version.outputs.value }}".zip >> $GITHUB_ENV
echo "unityPackage=${{ vars.PACKAGE_NAME }}-${{ steps.version.outputs.value }}.unitypackage" >> $GITHUB_ENV
echo "version=${{ steps.version.outputs.value }}" >> $GITHUB_ENV
# Zip the Package for release
- name: Create Package Zip
working-directory: "${{ env.packagePath }}"
run: zip -r "${{ github.workspace }}/${{ env.zipFile }}" .

# Build a list of .meta files for future use
- name: Track Package Meta Files
run: find "${{ env.packagePath }}/" -name \*.meta >> metaList

# Make a UnityPackage version of the Package for release
- name: Create UnityPackage
uses: pCYSl5EDgo/create-unitypackage@cfcd3cf0391a5ef1306342794866a9897c32af0b
with:
package-path: ${{ env.unityPackage }}
include-files: metaList

# Make a release tag of the version from the package.json file
- name: Create Tag
id: tag_version
uses: rickstaa/action-create-tag@88dbf7ff6fe2405f8e8f6c6fdfd78829bc631f83
with:
tag: "${{ env.version }}"

# Publish the Release to GitHub
- name: Make Release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
files: |
${{ env.zipFile }}
${{ env.unityPackage }}
${{ env.packagePath }}/package.json
tag_name: ${{ env.version }}
64 changes: 64 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

# Crashlytics generated file
crashlytics-build.properties

.idea/.idea.vpm-package-maker/.idea
Assets/PackageMakerWindowData.asset*
.idea
.vscode
8 changes: 8 additions & 0 deletions Packages/befuddledlabs.opensyncdance/Runtime.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

using AnimatorAsCode.V1;

namespace OpenSyncDance
namespace BefuddledLabs.OpenSyncDance
{
/// <summary>
/// Wraps around the common interface of state machines and layers to make generating search trees easier.
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
using VRC.SDK3.Dynamics.Contact.Components;
using VRC.SDKBase;

namespace OpenSyncDance
namespace BefuddledLabs.OpenSyncDance
{

[Serializable]
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using System.Collections.Generic;
using AnimatorAsCode.V1;

namespace OpenSyncDance
namespace BefuddledLabs.OpenSyncDance
{
static class Utils
{
Expand Down
File renamed without changes.
18 changes: 18 additions & 0 deletions Packages/befuddledlabs.opensyncdance/Runtime/opensyncdance.asmdef
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "befuddledlabs.opensyncdance",
"rootNamespace": "BefuddledLabs.OpenSyncDance",
"references": [
"GUID:d689052aa981bf8459346a530f6e6678",
"GUID:71d9dcc7d30ab1c45866d01afa59b6cf",
"GUID:5718fb738711cd34ea54e9553040911d"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Packages/befuddledlabs.opensyncdance/Samples.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
16 changes: 16 additions & 0 deletions Packages/befuddledlabs.opensyncdance/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "befuddledlabs.opensyncdance",
"displayName": "Open Sync Dance",
"version": "0.0.1",
"url": "https://github.com/BefuddledLabs/OpenSyncDance",
"author": {
"name": "BefuddledLabs"
},
"unity": "2022.3",
"description": "Tools for easier Avatar Creation",
"vpmDependencies": {
"com.vrchat.avatars": "^3.1.0",
"dev.hai-vr.animator-as-code.v1": "^1.0.9941",
"dev.hai-vr.animator-as-code.v1.vrchat": "^1.0.9941"
}
}
7 changes: 7 additions & 0 deletions Packages/befuddledlabs.opensyncdance/package.json.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Open Sync Dance

> [!WARNING]
> This package is under heavy development. Things may break! Use at your own risk.
## Dependencies

- [Haï's Animator As Code](https://github.com/hai-vr/av3-animator-as-code)
- [Haï's Animator As Code - VRChat](https://github.com/hai-vr/animator-as-code-vrchat)

## Development

To make modifications to this package:

1. Clone this repository to a non-unity project folder.
2. In the **Unity** package manager: add package from disk.
3. The package should be editable via Unity and any external editor.

## Acknowledgements

- [*DeltaNeverUsed*](https://github.com/DeltaNeverUsed) 💻
- [*Nara*](https://github.com/Naraenda) 💻
- [*Airishayn*](https://x.com/Airishayn1/) 🎨
Loading

0 comments on commit e5ffd2c

Please sign in to comment.