Skip to content

Commit

Permalink
Merge pull request #1 from jsdotlua/setup-npm-package
Browse files Browse the repository at this point in the history
Setup npm package 🚀
  • Loading branch information
grilme99 authored Jan 27, 2024
2 parents be20297 + 6661bc2 commit 6532b03
Show file tree
Hide file tree
Showing 61 changed files with 884 additions and 228 deletions.
27 changes: 27 additions & 0 deletions .darklua-bundle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"bundle": {
"require_mode": {
"name": "path",
"sources": {
"@pkg": "node_modules/.luau-aliases"
}
}
},
"generator": "dense",
"process": [
{
"rule": "inject_global_value",
"identifier": "__DEV__",
"value": false
},
"remove_types",
"remove_comments",
"remove_spaces",
"compute_expression",
"remove_unused_if_branch",
"remove_unused_while",
"filter_after_early_return",
"remove_nil_declaration",
"remove_empty_do"
]
}
24 changes: 24 additions & 0 deletions .darklua-wally.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"process": [
{
"rule": "convert_require",
"current": {
"name": "path",
"sources": {
"@pkg": "."
}
},
"target": {
"name": "roblox",
"indexing_style": "wait_for_child",
"rojo_sourcemap": "./sourcemap.json"
}
},
"compute_expression",
"remove_unused_if_branch",
"remove_unused_while",
"filter_after_early_return",
"remove_nil_declaration",
"remove_empty_do"
]
}
29 changes: 29 additions & 0 deletions .darklua.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"process": [
{
"rule": "convert_require",
"current": {
"name": "path",
"sources": {
"@pkg": "node_modules/.luau-aliases"
}
},
"target": {
"name": "roblox",
"indexing_style": "wait_for_child",
"rojo_sourcemap": "sourcemap.json"
}
},
{
"rule": "inject_global_value",
"identifier": "__DEV__",
"value": false
},
"compute_expression",
"remove_unused_if_branch",
"remove_unused_while",
"filter_after_early_return",
"remove_nil_declaration",
"remove_empty_do"
]
}
180 changes: 180 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
name: Release

on:
workflow_dispatch:
inputs:
release_tag:
description: "The version to release starting with `v`"
required: true
type: string

release_ref:
description: "The branch, tag or SHA to checkout (default to latest)"
default: ""
type: string

permissions:
contents: write

jobs:
publish-package:
name: Publish package
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Update yarn
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: "latest"
cache: "yarn"
cache-dependency-path: "yarn.lock"

- name: Update yarn
run: yarn set version stable

- name: Install packages
run: yarn install --immutable

- name: Run npmluau
run: yarn run prepare

- name: Authenticate yarn
run: |
yarn config set npmAlwaysAuth true
yarn config set npmScopes.jsdotlua.npmAuthToken $NPM_AUTH_TOKEN
env:
NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- run: yarn npm publish --access public

publish-wally-package:
needs: publish-package

name: Publish wally package
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: Roblox/setup-foreman@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Update yarn
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: "latest"
cache: "yarn"
cache-dependency-path: "yarn.lock"

- name: Check yarn version
run: yarn --version

- name: Install packages
run: yarn install --immutable

- name: Run npmluau
run: yarn run prepare

- name: Build assets
run: yarn run build-assets

- name: Login to wally
run: wally login --project-path build/wally --token ${{ secrets.WALLY_ACCESS_TOKEN }}

- name: Publish to wally
run: wally publish --project-path build/wally

create-release:
needs: publish-package

name: Create release
runs-on: ubuntu-latest

outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}

steps:
- uses: actions/checkout@v4

- name: Create tag
run: |
git fetch --tags --no-recurse-submodules
if [ ! $(git tag -l ${{ inputs.release_tag }}) ]; then
git tag ${{ inputs.release_tag }}
git push origin ${{ inputs.release_tag }}
fi
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ inputs.release_tag }}
name: ${{ inputs.release_tag }}
draft: false

build-assets:
needs: create-release

name: Add assets
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
include:
- artifact-name: picomatch.rbxm
path: build/picomatch.rbxm
asset-type: application/octet-stream

steps:
- uses: actions/checkout@v4

- uses: Roblox/setup-foreman@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Update yarn
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: "latest"
cache: "yarn"
cache-dependency-path: "yarn.lock"

- name: Update yarn
run: yarn set version stable

- name: Install packages
run: yarn install --immutable

- name: Run npmluau
run: yarn run prepare

- name: Build assets
run: yarn run build-assets

- name: Upload asset
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact-name }}
path: ${{ matrix.path }}

- name: Add asset to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ${{ matrix.path }}
asset_name: ${{ matrix.artifact-name }}
asset_content_type: ${{ matrix.asset-type }}
48 changes: 48 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Tests

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
test:
name: Run tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: Roblox/setup-foreman@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Update yarn
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: "latest"
cache: "yarn"
cache-dependency-path: "yarn.lock"

- name: Check yarn version
run: yarn --version

- name: Install packages
run: yarn install --immutable

- name: Run npmluau
run: yarn run prepare

- name: Run linter
run: yarn run lint

- name: Verify code style
run: yarn run style-check

- name: Build assets
run: yarn run build-assets
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ Packages/*
!Packages/.robloxrc
.DS_Store
debug.log
**/node_modules
.yarn


# IDEs and editors
/.idea
Expand Down Expand Up @@ -41,3 +44,6 @@ debug.log
.vscode/launch.json
cachegrind.out.*
callgrind.out.*
**/sourcemap.json
/build
/roblox
37 changes: 37 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/.*
/bin
/Packages
**/.robloxrc
rotriever.toml

/.github/
/.vscode/

/roblox
/build

/*.json
/*.toml
/*.yml
/*.md
/*.tgz

/scripts
/globalTypes.d.lua
**/sourcemap.json
**/*.project.json

/test

**/__tests__
**/tests
**/*.test.lua
**/*.spec.lua
**/jest.config.lua

**/*.rbxl
**/*.rbxlx
**/*.rbxl.lock
**/*.rbxlx.lock
**/*.rbxm
**/*.rbxmx
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"luau-lsp.require.directoryAliases": {
"@pkg": "node_modules/.luau-aliases"
}
}
1 change: 1 addition & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodeLinker: node-modules
2 changes: 1 addition & 1 deletion default.project.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "Picomatch",
"name": "picomatch",
"tree": {
"$path": "src"
}
Expand Down
10 changes: 6 additions & 4 deletions foreman.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
[tools]
rotrieve = { source = "roblox/rotriever", version = "0.5.5" }
rojo = { source = "Roblox/rojo-rbx-rojo", version = "7.2.1" }
selene = { source = "Roblox/Kampfkarren-selene", version = "0.20.0" }
stylua = { source = "Roblox/JohnnyMorganz-StyLua", version = "=0.14.3" }
rojo = { source = "rojo-rbx/rojo", version = "=7.4.0" }
selene = { source = "Kampfkarren/selene", version = "=0.20.0" }
stylua = { source = "JohnnyMorganz/StyLua", version = "=0.14.3" }
luau-lsp = { github = "johnnymorganz/luau-lsp", version = "=1.27.0"}
darklua = { github = "seaofvoices/darklua", version = "=0.12.1" }
wally = { github = "UpliftGames/wally", version = "=0.3.2" }
Loading

0 comments on commit 6532b03

Please sign in to comment.