modded7/.github/workflows/releasecommit.yml
2023-10-21 12:09:58 +11:00

175 lines
5.4 KiB
YAML

name: Create Release Commit
on:
workflow_dispatch:
inputs:
version:
description: |
Release Version (aka 1.6.1a, 1.6.1-beta-3, 2.0, etc.).
Still important if not a release, and will be used to replace all version fields.
required: true
release_type:
description: 'Release Type. Will be ignored if not a release.'
type: choice
required: true
default: 'Release'
options:
- 'Release'
- 'Beta Release'
- 'Alpha Release'
is_release:
description: |
Whether this commit is a release. Usually, leave this set to true. See CONTRIBUTING.md for more details.
type: boolean
required: true
default: true
workflow_call:
inputs:
version:
description: |
Release Version (aka 1.6.1a, 1.6.1-beta-3, 2.0, etc.).
Still important if not a release, and will be used to replace all version fields.
type: string
required: true
release_type:
description: 'Release Type. Will be ignored if not a release.'
type: string
required: true
is_release:
description: |
Whether this commit is a release. See CONTRIBUTING.md for more details.
type: boolean
required: false
default: true
jobs:
# Release Commit Steps
createReleaseCommit:
name: Create Release Commit (${{ inputs.version }})
runs-on: ubuntu-latest
if: "${{ inputs.is_release }}"
env:
VERSION: "${{ inputs.version }}"
RELEASE_TYPE: "${{ inputs.release_type }}"
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_KEY }}
- name: Restore Cached Files
uses: actions/cache@v3
id: cache
with:
path: |
~/.npm
./.cache
./tools/node_modules
key: ${{ runner.os }}-bunny-${{ hashFiles('**/.cache', '**/package-lock.json', '**/manifest.json') }}
restore-keys: ${{ runner.os }}-bunny-
- name: Setup NodeJS v16
uses: actions/setup-node@v3
with:
node-version: "16"
check-latest: true
- name: Setup NPM Packages
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npx gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Set Release Version
working-directory: ./tools
run: |
npx gulp addVersionAll
- name: Commit and Push Release Changes
uses: "stefanzweifel/git-auto-commit-action@v4"
id: "commit-release"
with:
commit_message: "${{ inputs.release_type }} ${{ inputs.version }}\n\n[NO CATEGORY]"
commit_author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
tagging_message: "${{ inputs.version }}"
- name: Throw Error if No Release Changes were Detected
if: ${{ steps.commit-release.outputs.changes_detected == 'false' }}
run: |
echo "No Changes were Made."
exit 1
# Non-Release Commit Steps
updateFilesFromTemplate:
name: Update Files from Templates
runs-on: ubuntu-latest
if: "${{ !inputs.is_release }}"
env:
VERSION: "${{ inputs.version }}"
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_KEY }}
- name: Restore Cached Files
uses: actions/cache@v3
id: cache
with:
path: |
~/.npm
./.cache
./tools/node_modules
key: ${{ runner.os }}-bunny-${{ hashFiles('**/.cache', '**/package-lock.json', '**/manifest.json') }}
restore-keys: ${{ runner.os }}-bunny-
- name: Setup NodeJS v16
uses: actions/setup-node@v3
with:
node-version: "16"
check-latest: true
- name: Setup NPM Packages
working-directory: ./tools
run: npm ci
- name: Check Environmental Variables
working-directory: ./tools
run: npx gulp check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CURSEFORGE_PROJECT_ID: ${{ secrets.CURSEFORGE_PROJECT_ID }}
CURSEFORGE_API_TOKEN: ${{ secrets.CURSEFORGE_API_TOKEN }}
CFCORE_API_TOKEN: ${{ secrets.CFCORE_API_TOKEN }}
- name: Update Files from Templates
working-directory: ./tools
run: |
npx gulp updateTemplatesAll
- name: Commit and Push Template Changes
uses: "stefanzweifel/git-auto-commit-action@v4"
id: "commit-template"
with:
commit_message: "Update Issue, Server and RP Config Files from Templates\n\n[SKIP]"
commit_author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
- name: Throw Error if No Template Changes were Detected
if: ${{ steps.commit-template.outputs.changes_detected == 'false' }}
run: |
echo "No Template Changes were detected. This may be an error."
exit 1