diff --git a/.github/workflows/build_and_release.yml b/.github/workflows/build_and_release.yml new file mode 100644 index 0000000..1d25af0 --- /dev/null +++ b/.github/workflows/build_and_release.yml @@ -0,0 +1,78 @@ +name: Build and release +on: push +jobs: + constants: + runs-on: ubuntu-latest + outputs: + minecraft-version: "1.17.1" + java-version: "17" + steps: + - run: echo constants + build: + needs: [constants] + runs-on: ubuntu-latest + outputs: + filename: ${{ steps.get-filename.outputs.filename }} + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Cache Gradle + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/gradle.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Set up JDK + uses: actions/setup-java@v2.3.0 + with: + distribution: 'temurin' + java-version: ${{ needs.constants.outputs.java-version }} + - name: Configure Git User Details + run: git config --global user.email "actions@github.com" && git config --global user.name "Github Actions" + - name: Apply Patches + run: ./gradlew applyPatches --stacktrace + - name: Build + run: ./gradlew build --stacktrace + - name: Get file name + id: get-filename + run: echo ::set-output name=filename::$(ls -1 ./build/libs/) + - name: Upload artifact + uses: actions/upload-artifact@v2 + if: "!failure()" + with: + name: jar + path: build/libs/${{ steps.get-filename.outputs.filename }} + release: + runs-on: ubuntu-latest + needs: [build,constants] + steps: + - name: Download artifact + uses: actions/download-artifact@v2 + with: + name: jar + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ needs.constants.outputs.minecraft-version }}-${{ github.run_number }} + release_name: ${{ needs.constants.outputs.minecraft-version }}-${{ github.run_number }} ${{ github.event.head_commit.message }} + body: "" + draft: false + prerelease: false + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./${{ needs.build.outputs.filename }} + asset_name: ${{ needs.build.outputs.filename }} + asset_content_type: application/zip \ No newline at end of file