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 news: required: true type: string changelog: required: true type: string env: CF_PROJECT_ID: "399664" MODRINTH_PROJECT_ID: "75JuuMzk" RELEASE_TYPE: "beta" jobs: 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: Display structure of downloaded files run: ls -R ./ # - 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-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 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: Create Discord message id: message shell: bash run: | header="## **${{ inputs.project_name }}** был обновлен до ${{ inputs.project_version }}! :tada:" echo "header=$header" >> $GITHUB_OUTPUT link+="[CurseForge]() • " link+="[GitHub]() • " link+="[Issues]()" echo "link=$link" >> $GITHUB_OUTPUT - name: Send Discord message uses: hugoalh/send-discord-webhook-ghaction@v6.0.1 with: key: "${{secrets.RELEASES_1_20}}" username: "TerraFirmaGreg" avatar_url: "https://raw.githubusercontent.com/TerraFirmaGreg-Team/.github/main/branding/logo_new_year.png" embeds: | [ { "allowed_mentions_parse": "1167128822513143848" } ] content: "${{ steps.message.outputs.header }}\n${{ steps.message.outputs.link }}\n${{ inputs.news }}" # 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 }}