Skip to content

Release

Release #5

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
- 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 }}
- 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: 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: graphql.rbxm
path: build/graphql.rbxm
asset-type: application/octet-stream
- artifact-name: graphql-dev.rbxm
path: build/debug/graphql.rbxm
asset-type: application/octet-stream
- artifact-name: graphql.lua
path: build/graphql.lua
asset-type: text/plain
- artifact-name: graphql-dev.lua
path: build/debug/graphql.lua
asset-type: text/plain
steps:
- uses: actions/checkout@v4
- uses: Roblox/setup-foreman@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- 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 }}