neuralgia/.github/workflows/release.yml
2024-04-30 17:01:35 +05:00

308 lines
12 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Build
run-name: "Build #${{ github.run_number }}"
on:
push:
branches:
- 'main'
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
env:
RELEASE_TYPE: "RELEASE"
jobs:
info:
name: Project Info
runs-on: ubuntu-latest
outputs:
project_version: "0.7.3"
project_name: ${{ steps.project_name.outputs.value }}
mc_version: ${{ steps.mc_version.outputs.value }}
changelog: ${{ steps.changelog.outputs.description }}
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
# - name: Get tag
# id: project_version
# uses: "WyriHaximus/github-action-get-previous-tag@v1.4.0"
# with:
# fallback: tag_not_found
- name: Get project name
id: project_name
uses: ActionsTools/read-json-action@main
with:
file_path: ".github/buildtools/modpack/manifest.json"
prop_path: "name"
- name: Get project name
id: mc_version
uses: ActionsTools/read-json-action@main
with:
file_path: ".github/buildtools/modpack/manifest.json"
prop_path: "minecraft.version"
- name: Changelog Parser
id: changelog
uses: coditory/changelog-parser@v1.0.2
with:
path: CHANGELOG.md
build-cf-modpack:
name: Build CF Modpack
runs-on: ubuntu-latest
needs: [info]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Replace strings
shell: bash
run: |
VERSION=${{ needs.info.outputs.project_version }}
sed -i -e "s/DEV/${VERSION}/g" .github/buildtools/modpack/manifest.json
sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/gui_main_menu.txt
- name: Export CF
run: |
mkdir -p overrides
mv -vf {config,defaultconfigs,kubejs} overrides/
mv -vf .github/buildtools/modpack/manifest.json ./
mv -vf .github/buildtools/modpack/modlist.html ./
zip -r ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-cf.zip manifest.json modlist.html overrides
- name: Upload zip cf
uses: actions/upload-artifact@v4.0.0
with:
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-cf
path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-cf.zip
retention-days: 5
build-mmc-modpack:
name: Build MMC Modpack
runs-on: ubuntu-latest
needs: [info]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Replace strings
shell: bash
run: |
VERSION=${{ needs.info.outputs.project_version }}
sed -i -e "s/DEV/${VERSION}/g" .github/buildtools/modpack/instance.cfg
sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/gui_main_menu.txt
- name: Download Mods
run: |
git submodule init
cd mods
git config --global credential.helper '!f() {
echo "username=Xikaro";
echo "password=${{ secrets.USER_TOKEN_XIKARO }}"; }; f'
git submodule update --recursive
- name: Export MMC
run: |
mkdir -p .minecraft
mkdir -p flame
mv -vf {config,defaultconfigs,kubejs,mods} .minecraft/
mv -vf .github/buildtools/modpack/mmc-pack.json ./
mv -vf .github/buildtools/modpack/instance.cfg ./
mv -vf .github/buildtools/modpack/modlist.html ./
mv -vf .github/buildtools/modpack/manifest.json flame/
find .minecraft/mods -name "probejs-*" -delete;
find .minecraft/mods -name ".git" -delete;
zip -r ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-mmc.zip icon.png mmc-pack.json instance.cfg .minecraft/ flame/
- name: Upload zip mmc
uses: actions/upload-artifact@v4.0.0
with:
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-mmc
path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-mmc.zip
retention-days: 5
build-serverpack:
name: Build Serverpack
runs-on: ubuntu-latest
needs: [info]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Download Mods
run: |
git submodule init
cd mods
git config --global credential.helper '!f() {
echo "username=Xikaro";
echo "password=${{ secrets.USER_TOKEN_XIKARO }}"; }; f'
git submodule update --recursive
- name: Replace strings
shell: bash
run: |
VERSION=${{ needs.info.outputs.project_version }}
sed -i -e "s/DEV/${VERSION}/g" .github/buildtools/modpack/manifest.json
sed -i -e "s/DEV/${VERSION}/g" config/fancymenu/customization/gui_main_menu.txt
- name: Export serverpack
run: |
mkdir -p .minecraft
mv -vf {config,defaultconfigs,kubejs,mods,.github/buildtools/serverpack/*} .minecraft
cat .github/buildtools/client_mod.txt | while read -r line; do find .minecraft/mods -name "$line" -delete; done
zip -r ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server.zip .minecraft/*
- name: Upload zip
uses: actions/upload-artifact@v4.0.0
with:
name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server
path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server.zip
retention-days: 5
# release-curseforge:
# name: Deploy to CurseForge
# needs: [info, build-cf-modpack, build-serverpack]
# runs-on: ubuntu-latest
# outputs:
# cf_release_id: ${{ steps.cf_release.outputs.id }}
# 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: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-cf
# - name: Download serverpack
# uses: actions/download-artifact@v4.1.0
# with:
# name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server
# - name: Upload Curseforge
# id: cf_release
# uses: Xikaro/upload-curseforge-modpack-action@1.1.1
# with:
# api-token: ${{ secrets.CF_API_TOKEN }}
# project-id: ${{ vars.CF_MODPACK_ID }}
# modpack-path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-cf.zip
# modpack-server-path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server.zip
# changelog: ${{ needs.info.outputs.changelog }}
# changelog-format: markdown
# game-version: ${{ needs.info.outputs.mc_version }}
# display-name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}
# server-display-name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server
# release-type: ${{ env.RELEASE_TYPE }}
# 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: ${{ vars.MODRINTH_MODPACK_ID }}
# modpack-path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-mrd.zip
# modpack-server-path: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server.zip
# changelog: ${{ needs.info.outputs.changelog }}
# changelog-format: markdown
# game-version: ${{ needs.info.outputs.mc_version }}
# display-name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}
# server-display-name: ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server
# release-type: ${{ env.RELEASE_TYPE }}
# release-github:
# name: Deploy to GitHub
# needs: [info, build-cf-modpack, build-mmc-modpack, build-serverpack]
# 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: ${{ needs.info.outputs.project_version }}
# body: ${{ needs.info.outputs.changelog }}
# files: |
# ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-cf.zip
# ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-mmc.zip
# ${{ needs.info.outputs.project_name }}-${{ needs.info.outputs.project_version }}-server.zip
# tag_name: ${{ needs.info.outputs.project_version }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
discord-message:
name: Discord Message
needs: [info]
runs-on: ubuntu-latest
steps:
- name: Send Discord message
uses: tsickert/discord-webhook@v6.0.0
with:
webhook-url: ${{secrets.RELEASES_1_20}}
username: "TerraFirmaGreg"
avatar-url: "https://raw.githubusercontent.com/TerraFirmaGreg-Team/.github/main/branding/curseforge.png"
embed-title: Release ${{ needs.info.outputs.project_version }}
embed-url: https://github.com/${{ github.repository }}/releases/tag/${{ needs.info.outputs.project_version }}
embed-thumbnail-url: https://raw.githubusercontent.com/TerraFirmaGreg-Team/.github/main/branding/logo.png
embed-description: |
**Release Type**: `${{ env.RELEASE_TYPE }}`
**GameVersion**: `${{ needs.info.outputs.mc_version }}`
**Website Link**: [CurseForge](https://www.curseforge.com/minecraft/modpacks/terrafirmagreg/files/5303630)
** Сhangelog **
```${{ needs.info.outputs.changelog }}```
** [More details...](https://github.com/TerraFirmaGreg-Team/Modpack-1.20.x/blob/main/CHANGELOG.md) **
embed-color: 5814783
# close-fixed-issues:
# name: Close Fixed Issues
# needs: [info, release-github, release-curseforge]
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4.1.1
# - name: Сlose fixed in dev
# uses: juraj-hrivnak/close-issues-based-on-label@master
# env:
# LABEL: "2. Status: Fixed in Dev"
# VERSION: ${{ needs.info.outputs.project_version }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}