Merge pull request #650 from altrisi/release-action
Add Publish Release Action
This commit is contained in:
4 files changed
+206
-85
No files matched your search
@@ -1,21 +0,0 @@
|
||||
name: Merge docs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "docs/**"
|
||||
jobs:
|
||||
Scarpet:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Merge docs
|
||||
run: ./mergedoc.sh
|
||||
- name: Commit merged docs
|
||||
continue-on-error: true
|
||||
run: |
|
||||
git config --global user.name 'github-actions[bot]'
|
||||
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git commit -am "Merge docs for '${{ github.event.head_commit.message }}'"
|
||||
git push
|
||||
@@ -0,0 +1,192 @@
|
||||
name: Publish Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
jobs:
|
||||
Get-Properties:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
release-type: ${{ steps.type.outputs.release-type }}
|
||||
carpet-version: ${{ steps.properties.outputs.mod_version }}
|
||||
minecraft-version: ${{ steps.properties.outputs.minecraft_version }}
|
||||
curse-versions: ${{ steps.properties.outputs.release-curse-versions }}
|
||||
matrix-exclude-branch: ${{ steps.processmatrix.outputs.matrix-to-exclude }}
|
||||
extra-branch-name: ${{ steps.properties.outputs.release-extra-branch-name }}
|
||||
extra-branch-curse-version: ${{ steps.properties.outputs.release-extra-curse-version }}
|
||||
steps:
|
||||
- name: Checkout the sources
|
||||
uses: actions/checkout@v2
|
||||
- name: Determine release type
|
||||
id: type
|
||||
run: |
|
||||
if ${{ github.event.release.prerelease }}; then
|
||||
echo "::set-output name=release-type::beta"
|
||||
else
|
||||
echo "::set-output name=release-type::release"
|
||||
fi
|
||||
- name: Read relevant fields from gradle.properties
|
||||
id: properties
|
||||
run: | # From christian-draeger/read-properties, using the action makes it extremely messy until christian-draeger/read-properties#2
|
||||
path='./gradle.properties'
|
||||
for property in mod_version minecraft_version release-curse-versions release-extra-branch release-extra-branch-name release-extra-curse-version
|
||||
do
|
||||
result=$(sed -n "/^[[:space:]]*$property[[:space:]]*=[[:space:]]*/s/^[[:space:]]*$property[[:space:]]*=[[:space:]]*//p" "$path")
|
||||
echo "$property: $result"
|
||||
echo ::set-output name=$property::"$result"
|
||||
done
|
||||
- name: Process property for matrix
|
||||
id: processmatrix
|
||||
run: |
|
||||
if ! ${{ steps.properties.outputs.release-extra-branch }}; then
|
||||
echo "::set-output name=matrix-to-exclude::Snapshots"
|
||||
fi
|
||||
Build-And-Publish:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Get-Properties]
|
||||
strategy:
|
||||
matrix:
|
||||
branch: [Release, Snapshots]
|
||||
exclude:
|
||||
- branch: ${{ needs.Get-Properties.outputs.matrix-exclude-branch }}
|
||||
steps:
|
||||
- name: Get info from branch to run
|
||||
id: getbranchinfo
|
||||
run: |
|
||||
if ${{ matrix.branch == 'Snapshots'}}; then
|
||||
echo "::set-output name=branchname::${{ needs.Get-Properties.outputs.extra-branch-name }}"
|
||||
echo "::set-output name=version::${{ needs.Get-Properties.outputs.extra-branch-curse-version }}"
|
||||
echo "::set-output name=curse-versions::${{ needs.Get-Properties.outputs.extra-branch-curse-version }}"
|
||||
else
|
||||
echo "::set-output name=version::${{ needs.Get-Properties.outputs.minecraft-version }}"
|
||||
echo "::set-output name=curse-versions::${{ needs.Get-Properties.outputs.curse-versions }}"
|
||||
fi
|
||||
- name: Checkout the sources
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ steps.getbranchinfo.outputs.branchname }}
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Cache Gradle packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
||||
restore-keys: ${{ runner.os }}-gradle
|
||||
- name: Grant execute permission to gradlew
|
||||
run: chmod +x gradlew
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew build
|
||||
- name: Find correct JAR
|
||||
id: findjar
|
||||
run: |
|
||||
output="$(find build/libs/ ! -name "*-dev.jar" ! -name "*-sources.jar" -type f -printf "%f\n")"
|
||||
echo "::set-output name=jarname::$output"
|
||||
- name: Save build artifacts in the action
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Artifacts for ${{ matrix.branch }}
|
||||
path: build/libs
|
||||
- name: Upload to the Github release
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: build/libs/${{ steps.findjar.outputs.jarname }}
|
||||
asset_name: ${{ steps.findjar.outputs.jarname }}
|
||||
asset_content_type: application/java-archive
|
||||
- name: Upload to Curseforge
|
||||
uses: itsmeow/curseforge-upload@v3
|
||||
with:
|
||||
token: ${{ secrets.CF_API_TOKEN }}
|
||||
project_id: 349239
|
||||
game_endpoint: minecraft
|
||||
file_path: build/libs/${{ steps.findjar.outputs.jarname }}
|
||||
changelog_type: markdown
|
||||
changelog: ${{ github.event.release.body }}
|
||||
display_name: Carpet Mod v${{ needs.Get-Properties.outputs.carpet-version }} for ${{ steps.getbranchinfo.outputs.version }}
|
||||
game_versions: 7499,4458,${{ steps.getbranchinfo.outputs.curse-versions }} #Fabric,Java 8,[version (s) for the branch]
|
||||
release_type: ${{ needs.Get-Properties.outputs.release-type }}
|
||||
- name: Ask Gradle to publish
|
||||
run: ./gradlew publish
|
||||
- name: Save publish folder in action's artifacts # Remove when automated
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Maven publishing artifacts for ${{ matrix.branch }}
|
||||
path: publish/carpet/fabric-carpet/
|
||||
Merge-Scarpet-Docs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the sources
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: master
|
||||
- name: Merge docs
|
||||
run: |
|
||||
./mergedoc.sh
|
||||
- name: Commit merged docs
|
||||
continue-on-error: true
|
||||
run: |
|
||||
git config --global user.name 'github-actions[bot]'
|
||||
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git commit -am "Merge docs for '${{ github.event.release.name }}'" || exit 0
|
||||
git push
|
||||
Update-Rules-Wiki:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Carpet sources
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Cache Gradle packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
||||
restore-keys: ${{ runner.os }}-gradle
|
||||
- name: Replace fabric.mod.json
|
||||
run: |
|
||||
cd src/main/resources
|
||||
rm fabric.mod.json
|
||||
echo '
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "carpet",
|
||||
"version": "1.4.11",
|
||||
"entrypoints": {
|
||||
"preLaunch": [ "carpet.utils.RulePrinter" ]
|
||||
}
|
||||
}' > fabric.mod.json
|
||||
cd ../../../
|
||||
- name: Run solution
|
||||
run: |
|
||||
chmod +x gradlew
|
||||
./gradlew runServer > settings-toProccess.txt
|
||||
- name: Checkout wiki
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{github.repository}}.wiki
|
||||
path: wiki
|
||||
- name: Proccess Gradle log into a pretty wiki page
|
||||
run: |
|
||||
from1="# Carpet";
|
||||
File=settings-toProccess.txt
|
||||
if grep -q "Deprecated Gradle features" "$File"; then # Happens after update to Gradle 6
|
||||
to2="Deprecated Gradle features";
|
||||
else
|
||||
to2="BUILD SUCCESSFUL"
|
||||
fi
|
||||
a="$(cat settings-toProccess.txt)"; a="$(echo "${a#*"$from1"}")"; echo "$from1${a%%"$to2"*}" > wiki/Current-Available-Settings.md
|
||||
- name: Commit updated wiki page
|
||||
continue-on-error: true
|
||||
run: |
|
||||
cd wiki
|
||||
git config --global user.name 'github-actions-bot' # Releases don't have valid commiter info :(
|
||||
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git commit -am "Update wiki for '${{ github.event.release.name }}'" || exit 0
|
||||
git push
|
||||
@@ -1,64 +0,0 @@
|
||||
name: Update wiki
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "src/main/java/carpet/CarpetSettings.java"
|
||||
jobs:
|
||||
Rules:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Carpet sources
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Cache Gradle packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.gradle/caches
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
||||
restore-keys: ${{ runner.os }}-gradle
|
||||
- name: Replace fabric.mod.json
|
||||
run: |
|
||||
cd src/main/resources
|
||||
rm fabric.mod.json
|
||||
echo '
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "carpet",
|
||||
"version": "1.4.11",
|
||||
"entrypoints": {
|
||||
"preLaunch": [ "carpet.utils.RulePrinter" ]
|
||||
}
|
||||
}' > fabric.mod.json
|
||||
cd ../../../
|
||||
- name: Run solution
|
||||
run: |
|
||||
chmod +x gradlew
|
||||
./gradlew runServer > settings-toProccess.txt
|
||||
- name: Checkout wiki
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{github.repository}}.wiki
|
||||
path: wiki
|
||||
- name: Proccess Gradle log into a pretty wiki page
|
||||
run: |
|
||||
from1="# Carpet";
|
||||
File=settings-toProccess.txt
|
||||
if grep -q "Deprecated Gradle features" "$File"; then # Happens after update to Gradle 6
|
||||
to2="Deprecated Gradle features";
|
||||
else
|
||||
to2="BUILD SUCCESSFUL"
|
||||
fi
|
||||
a="$(cat settings-toProccess.txt)"; a="$(echo "${a#*"$from1"}")"; echo "$from1${a%%"$to2"*}" > wiki/Current-Available-Settings.md
|
||||
- name: Commit updated wiki page
|
||||
continue-on-error: true
|
||||
run: |
|
||||
cd wiki
|
||||
git config --global user.name '${{ github.event.pusher.name }}' # Looks better than "github-actions-bot"
|
||||
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
|
||||
git commit -am "Update wiki for '${{ github.event.head_commit.message }}'"
|
||||
git push
|
||||
@@ -13,6 +13,20 @@ org.gradle.jvmargs=-Xmx1G
|
||||
maven_group = carpet
|
||||
archives_base_name = fabric-carpet
|
||||
|
||||
# Release Action properties for Curseforge and Snapshots
|
||||
# The Curseforge versions "names" or ids for the main branch (comma separated: 1.16.4,1.16.5)
|
||||
# This is needed because CF uses too vague names for prereleases and release candidates
|
||||
# Can also be the version ID directly coming from https://minecraft.curseforge.com/api/game/versions?token=[API_TOKEN]
|
||||
release-curse-versions = 1.16.3,1.16.4
|
||||
# Whether or not to build another branch on release
|
||||
release-extra-branch = true
|
||||
# The name of the second branch to release
|
||||
release-extra-branch-name = 1.17
|
||||
# The "name" or id of the Curseforge version for the secondary branch
|
||||
# This is needed because CF uses too vague names for snapshots
|
||||
# Can also be the version ID directly coming from https://minecraft.curseforge.com/api/game/versions?token=[API_TOKEN]
|
||||
release-extra-curse-version = 1.17
|
||||
|
||||
# Dependencies
|
||||
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
|
||||
#fabric_version=0.3.0-pre+build.166
|
||||
Reference in new issue
Block a user