Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/alpha-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Alpha Release

on:
workflow_dispatch:
inputs:
package:
description: "The published name of a single package to release"
type: choice
required: true
options:
- "@nanoforge-dev/asset-manager"
- "@nanoforge-dev/common"
- "@nanoforge-dev/config"
- "@nanoforge-dev/core"
- "@nanoforge-dev/core-editor"
- "@nanoforge-dev/ecs-client"
- "@nanoforge-dev/ecs-lib"
- "@nanoforge-dev/ecs-server"
- "@nanoforge-dev/graphics-2d"
- "@nanoforge-dev/input"
- "@nanoforge-dev/music"
- "@nanoforge-dev/network-client"
- "@nanoforge-dev/network-server"
- "@nanoforge-dev/sound"
- "@nanoforge-dev/utils-eslint-config"
- "@nanoforge-dev/utils-prettier-config"
dry_run:
description: Perform a dry run?
type: boolean
default: false

permissions:
contents: write
id-token: write

jobs:
alpha-release:
name: Alpha release
runs-on: ubuntu-latest
if: github.repository_owner == 'NanoForge-dev'
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Prepare
uses: ./.github/actions/prepare

- name: Release alpha
uses: ./node_modules/@nanoforge-dev/actions/actions/release-dev
with:
package: ${{ inputs.package }}
tag: alpha
dry: ${{ inputs.dry_run }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48 changes: 48 additions & 0 deletions .github/workflows/pre-release-single.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Pre-Release Single

on:
workflow_dispatch:
inputs:
package:
description: "The published name of a single package to release"
type: choice
required: true
options:
- "@nanoforge-dev/utils-eslint-config"
- "@nanoforge-dev/utils-prettier-config"
version:
description: "New version for the packages"
type: string
required: true
dry_run:
description: Perform a dry run?
type: boolean
default: false

permissions:
contents: write
pull-requests: write

jobs:
create-release-pr:
name: Create release pr
runs-on: ubuntu-latest
if: github.repository_owner == 'NanoForge-dev'
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true

- name: Prepare
uses: ./.github/actions/prepare

- name: Create release PR
uses: ./node_modules/@nanoforge-dev/actions/actions/create-packages-release-pr
with:
packages: ${{ inputs.package }}
version: ${{ inputs.version }}
dry: ${{ inputs.dry_run }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31 changes: 6 additions & 25 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,8 @@ name: Pre-Release
on:
workflow_dispatch:
inputs:
package:
description: "The published name of a single package to release"
type: choice
required: true
options:
- "@nanoforge-dev/asset-manager"
- "@nanoforge-dev/common"
- "@nanoforge-dev/config"
- "@nanoforge-dev/core"
- "@nanoforge-dev/core-editor"
- "@nanoforge-dev/ecs-client"
- "@nanoforge-dev/ecs-lib"
- "@nanoforge-dev/ecs-server"
- "@nanoforge-dev/graphics-2d"
- "@nanoforge-dev/input"
- "@nanoforge-dev/music"
- "@nanoforge-dev/network-client"
- "@nanoforge-dev/network-server"
- "@nanoforge-dev/sound"
- "@nanoforge-dev/utils-eslint-config"
- "@nanoforge-dev/utils-prettier-config"
version:
description: "New version of the package"
description: "New version for the packages"
type: string
required: true
dry_run:
Expand All @@ -52,11 +31,13 @@ jobs:
- name: Prepare
uses: ./.github/actions/prepare

- name: Release packages
uses: ./node_modules/@nanoforge-dev/actions/dist/create-release-pr
- name: Create release PR
uses: ./node_modules/@nanoforge-dev/actions/actions/create-packages-release-pr
with:
package: ${{ inputs.package }}
packages: "@nanoforge-dev/asset-manager,@nanoforge-dev/common,@nanoforge-dev/config,@nanoforge-dev/core,@nanoforge-dev/core-editor,@nanoforge-dev/ecs-client,@nanoforge-dev/ecs-lib,@nanoforge-dev/ecs-server,@nanoforge-dev/graphics-2d,@nanoforge-dev/input,@nanoforge-dev/music,@nanoforge-dev/network-client,@nanoforge-dev/network-server,@nanoforge-dev/sound"
version: ${{ inputs.version }}
branch-format: "releases/nanoforge@{version}"
commit-format: "chore: release nanoforge@{version}"
dry: ${{ inputs.dry_run }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31 changes: 0 additions & 31 deletions .github/workflows/release-tag.yml

This file was deleted.

83 changes: 44 additions & 39 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,47 +1,21 @@
name: Release

on:
workflow_dispatch:
inputs:
package:
description: "The published name of a single package to release"
type: choice
required: false
options:
- "all"
- "@nanoforge-dev/asset-manager"
- "@nanoforge-dev/common"
- "@nanoforge-dev/config"
- "@nanoforge-dev/core"
- "@nanoforge-dev/core-editor"
- "@nanoforge-dev/ecs-client"
- "@nanoforge-dev/ecs-lib"
- "@nanoforge-dev/ecs-server"
- "@nanoforge-dev/graphics-2d"
- "@nanoforge-dev/input"
- "@nanoforge-dev/music"
- "@nanoforge-dev/network-client"
- "@nanoforge-dev/network-server"
- "@nanoforge-dev/sound"
- "@nanoforge-dev/utils-eslint-config"
- "@nanoforge-dev/utils-prettier-config"
exclude:
description: "Comma separated list of packages to exclude from release (if not depended upon)"
required: false
type: string
dry_run:
description: Perform a dry run?
type: boolean
default: false
pull_request:
types:
- closed
branches:
- main

permissions:
contents: write
id-token: write

jobs:
npm-publish:
name: npm publish
release:
name: Release
runs-on: ubuntu-latest
if: github.repository_owner == 'NanoForge-dev'
if: github.repository_owner == 'NanoForge-dev' && github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/nanoforge@')
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -50,11 +24,42 @@ jobs:
uses: ./.github/actions/prepare

- name: Release packages
uses: ./node_modules/@nanoforge-dev/actions/dist/release-packages
uses: ./node_modules/@nanoforge-dev/actions/actions/release-packages
with:
package: ${{ inputs.package }}
exclude: ${{ inputs.exclude }}
dry: ${{ inputs.dry_run }}
packages: "@nanoforge-dev/asset-manager,@nanoforge-dev/common,@nanoforge-dev/config,@nanoforge-dev/core,@nanoforge-dev/core-editor,@nanoforge-dev/ecs-client,@nanoforge-dev/ecs-lib,@nanoforge-dev/ecs-server,@nanoforge-dev/graphics-2d,@nanoforge-dev/input,@nanoforge-dev/music,@nanoforge-dev/network-client,@nanoforge-dev/network-server,@nanoforge-dev/sound"
tag-format: "{version}"
latest: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

release-single-package:
name: Release
runs-on: ubuntu-latest
if: github.repository_owner == 'NanoForge-dev' && github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/') && !startsWith(github.head_ref, 'releases/nanoforge@')
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Prepare
uses: ./.github/actions/prepare

- id: get-package
name: Get package name
uses: actions/github-script@0.9.0
with:
script: |
const branch = '${{ github.head_ref }}';
const nameAndVersion = branch.replace('releases/', '');
const name = nameAndVersion.split('@')[0];
const package = `@nanoforge-dev/${name}`;
core.setOutput('package', package)

- name: Release packages
uses: ./node_modules/@nanoforge-dev/actions/actions/release-packages
with:
packages: ${{ steps.get-package.outputs.package }}
latest: false
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading