name: Release on: push: tags: - '[0-9]+.[0-9]+.[0-9]+' workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' - name: Make gradlew executable run: chmod +x ./gradlew - name: Build with Gradle uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 with: arguments: build - name: Upload Build Results uses: actions/upload-artifact@v4 with: name: build path: | fabric/build/libs/*.jar forge/build/libs/*.jar release: runs-on: ubuntu-latest permissions: contents: write env: GH_TOKEN: ${{ github.token }} needs: [build] steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 - name: Create Release run: | mkdir dist shopt -s nullglob mv build/{fabric,forge}/build/libs/*.jar dist/ pushd dist shasum -a 256 * > checksums.txt popd version=$(grep mod_version gradle.properties | cut -d'=' -f2 | awk '{gsub(/^ +| + $/,""); print}') channel=$(grep release_channel gradle.properties | cut -d'=' -f2 | awk '{gsub(/^ +| + $/,""); print}') release_args=( "$version" --title "Weather Changer ${version}" --generate-notes ) if [[ "$channel" == "alpha" || "$channel" == "beta" ]]; then release_args+=( --prerelease ) fi gh release create "${release_args[@]}" ./dist/*