Release #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
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 | |
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: tag-effect.lua | |
path: build/tag-effect.lua | |
asset-type: text/plain | |
- artifact-name: tag-effect-dev.lua | |
path: build/debug/tag-effect.lua | |
asset-type: text/plain | |
- artifact-name: tag-effect.rbxm | |
path: build/tag-effect.rbxm | |
asset-type: application/octet-stream | |
- artifact-name: tag-effect-dev.rbxm | |
path: build/debug/tag-effect.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 | |
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 }} |