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 Sep 30, 2024
2 parents 0a3ac87 + 6007ee0 commit 45614ff
Show file tree
Hide file tree
Showing 61 changed files with 1,463 additions and 285 deletions.
29 changes: 29 additions & 0 deletions .darklua-dev.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"rules": [
{
"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": true
},
"compute_expression",
"remove_unused_if_branch",
"remove_unused_while",
"filter_after_early_return",
"remove_nil_declaration",
"remove_empty_do"
]
}
42 changes: 42 additions & 0 deletions .darklua-tests.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"rules": [
"remove_comments",
"remove_spaces",
{
"rule": "convert_require",
"current": {
"name": "path",
"sources": {
"@pkg": "node_modules/.luau-aliases"
}
},
"target": {
"name": "roblox",
"rojo_sourcemap": "sourcemap.json",
"indexing_style": "wait_for_child"
}
},
{
"rule": "inject_global_value",
"identifier": "LUA_ENV",
"value": "roblox"
},
{
"rule": "inject_global_value",
"identifier": "DEV",
"value": false
},
{
"rule": "inject_global_value",
"identifier": "__DEV__",
"value": false
},
"compute_expression",
"remove_unused_if_branch",
"filter_after_early_return",
"convert_index_to_field",
"remove_unused_while",
"remove_empty_do",
"remove_method_definition"
]
}
24 changes: 24 additions & 0 deletions .darklua-wally.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"rules": [
{
"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 @@
{
"rules": [
{
"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"
]
}
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# * text eol=lf

*.gif binary
*.ico binary
*.jpg binary
*.png binary
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Closes #[issue number]

<!-- description of the changes -->

- [ ] add entry to the changelog
170 changes: 170 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
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: Enable corepack
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: latest
registry-url: https://registry.npmjs.org
cache: yarn
cache-dependency-path: yarn.lock

- 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 npmAuthToken $NPM_AUTH_TOKEN
env:
NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish to npm
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: Enable corepack
run: corepack enable

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

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

- name: Run npmluau
run: yarn run prepare

- name: Build artifacts
run: yarn run build

- 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: react-testing-library.rbxm
path: build/react-testing-library.rbxm
asset-type: application/octet-stream

- artifact-name: react-testing-library-dev.rbxm
path: build/debug/react-testing-library.rbxm
asset-type: application/octet-stream
steps:
- uses: actions/checkout@v4

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

- name: Enable corepack
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: latest
registry-url: https://registry.npmjs.org
cache: yarn
cache-dependency-path: yarn.lock

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

- name: Run npmluau
run: yarn run prepare

- name: Build assets
run: yarn run build

- 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 }}
42 changes: 42 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
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: Enable corepack
run: corepack enable

- uses: actions/setup-node@v3
with:
node-version: latest
registry-url: https://registry.npmjs.org
cache: yarn
cache-dependency-path: yarn.lock

- 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
30 changes: 18 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
Packages/*
!Packages/.robloxrc

rotriever.lock
roblox.toml
*.rbxmx
*.rbxm

.vscode/launch.json
.vscode/settings.json
.vscode/tasks.json
.idea
/site

/*.rbxl
/*.rbxlx
/*.rbxl.lock
/*.rbxlx.lock
/*.rbxm
/*.rbxmx

/temp
/node_modules
/build

.yarn

/globalTypes.d.lua

**/sourcemap.json
6 changes: 6 additions & 0 deletions .luau-analyze.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"luau-lsp.require.mode": "relativeToFile",
"luau-lsp.require.directoryAliases": {
"@pkg": "node_modules/.luau-aliases"
}
}
Loading

0 comments on commit 45614ff

Please sign in to comment.