Skip to content

Release

Release #1

Workflow file for this run

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 }}