neuralgia/.github/workflows/release.yml
2024-01-05 19:05:47 +05:00

152 lines
5.3 KiB
YAML

name: Release
run-name: "Release #${{ github.run_number }}"
on:
workflow_call:
inputs:
project_name:
required: true
type: string
project_version:
required: true
type: string
mcversion:
required: true
type: string
tag:
required: true
type: string
changelog:
required: true
type: string
env:
CF_PROJECT_ID: "385053"
MODRINTH_PROJECT_ID: "75JuuMzk"
RELEASE_TYPE: "beta"
jobs:
release-curseforge:
name: Deploy to CurseForge
runs-on: ubuntu-latest
steps:
- name: Check if CF_API_TOKEN exist
shell: bash
run: |
if [ "${{ secrets.CF_API_TOKEN }}" == '' ]; then
echo '::error::No value found for secret key `CF_API_TOKEN`. See https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1
fi
- name: Download cf modpack
uses: actions/download-artifact@v4.1.0
with:
name: ${{ inputs.project_name }}-${{ inputs.project_version }}-cf
- name: Download serverpack
uses: actions/download-artifact@v4.1.0
with:
name: ${{ inputs.project_name }}-${{ inputs.project_version }}-server
- name: Upload Curseforge
id: cf_release
uses: SwitchAlpha/upload-curseforge-modpack-action@master
with:
api-token: ${{ secrets.CF_API_TOKEN }}
project-id: ${{ env.CF_PROJECT_ID }}
modpack-path: ${{ inputs.project_name }}-${{ inputs.project_version }}-cf.zip
modpack-server-path: ${{ inputs.project_name }}-${{ inputs.project_version }}-server.zip
changelog: ${{ inputs.changelog }}
changelog-format: markdown
game-version: ${{ inputs.mcversion }}
display-name: ${{ inputs.project_name }}-${{ inputs.project_version }}
server-display-name: ${{ inputs.project_name }}-${{ inputs.project_version }}-server
release-type: ${{ env.RELEASE_TYPE }}
- name: Send Discord message
uses: tsickert/discord-webhook@v5.4.0
with:
webhook-url: ${{secrets.RELEASES_1_20}}
username: "TerraFirmaGreg"
avatar-url: "https://raw.githubusercontent.com/TerraFirmaGreg-Team/.github/main/branding/logo_new_year.png"
embed-title: Release ${{ inputs.project_version }}
embed-url: https://github.com/TerraFirmaGreg-Team/TFG-Modpack-1.20.x/releases/tag/${{ inputs.tag }}
embed-description: ${{ inputs.changelog }}
embed-color: 5814783
release-github:
name: Deploy to GitHub
runs-on: ubuntu-latest
steps:
- name: Download modpack
uses: actions/download-artifact@v4.1.0
with:
merge-multiple: true
- name: Create release
uses: softprops/action-gh-release@v1
with:
prerelease: false
generate_release_notes: true
name: ${{ inputs.project_version }}
body: ${{ inputs.changelog }}
files: |
${{ inputs.project_name }}-${{ inputs.project_version }}-cf.zip
${{ inputs.project_name }}-${{ inputs.project_version }}-mmc.zip
${{ inputs.project_name }}-${{ inputs.project_version }}-server.zip
tag_name: ${{ inputs.tag }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# release-modrinth:
# name: Deploy to Modrinth
# runs-on: ubuntu-latest
# steps:
# - name: Check if MODRINTH_API_TOKEN exist
# shell: bash
# run: |
# if [ "${{ secrets.MODRINTH_API_TOKEN }}" == '' ]; then
# echo '::error::No value found for secret key `MODRINTH_API_TOKEN`. See https://docs.github.com/en/actionssecurity-guides/ encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1
# fi
# - name: Download modpack
# uses: actions/download-artifact@v4.1.0
# with:
# name: modpack_mrd
# - name: Download serverpack
# uses: actions/download-artifact@v4.1.0
# with:
# name: server_pack
# - name: Upload Modrinth
# id: cf_release
# uses: SwitchAlpha/upload-curseforge-modpack-action@master
# with:
# api-token: ${{ secrets.MODRINTH_API_TOKEN }}
# project-id: ${{ env.MODRINTH_PROJECT_ID }}
# modpack-path: ${{ inputs.project_name }}-${{ inputs.project_version }}-mrd.zip
# modpack-server-path: ${{ inputs.project_name }}-${{ inputs.project_version }}-server.zip
# changelog: "${{ inputs.changelog }}"
# changelog-format: markdown
# game-version: ${{ inputs.mcversion }}
# display-name: ${{ inputs.project_name }}-${{ inputs.project_version }}
# server-display-name: ${{ inputs.project_name }}-${{ inputs.project_version }}-server
# release-type: ${{ env.RELEASE_TYPE }}
close-fixed-issues:
name: Close Fixed Issues
runs-on: ubuntu-latest
needs: [release-github, release-curseforge]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: close-fixed-in-dev
uses: juraj-hrivnak/close-issues-based-on-label@master
env:
LABEL: "2. status: fixed in dev"
VERSION: ${{ inputs.tag }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}