Fix compilation for linux #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automatic Release | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- 'README.md' | |
- '.github/ISSUE_TEMPLATE/' | |
- 'Assets/' | |
- 'Visuals/' | |
- '.gitignore' | |
- 'LICENSE' | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
jobs: | |
build_os_matrix: | |
name: ${{ matrix.config.name }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: Windows, | |
os: windows-latest | |
} | |
- { | |
name: Linux, | |
os: ubuntu-latest | |
} | |
uses: ./.github/workflows/botcraft_build.yml | |
with: | |
os: ${{ matrix.config.os }} | |
release: | |
runs-on: ubuntu-latest | |
needs: | |
- build_os_matrix | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Fetch depth 0 to get all tags and commits to generate release note changelog | |
fetch-depth: 0 | |
- name: Download Windows artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: botcraft-Windows | |
path: windows | |
- name: Download Linux artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: botcraft-Linux | |
path: linux | |
- name: Download doc artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: botcraft-doc | |
path: doc | |
- name: Download version artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MC-version | |
path: version | |
- name: Retrieve MC game version | |
id: mc-version | |
run: echo "version=$(cat version/version.txt)" >> $GITHUB_OUTPUT | |
- name: Create release note | |
run: | | |
echo Automatically built library with the latest version of the code for Minecraft ${{ steps.mc-version.outputs.version }} and all options enabled. Examples are in \`\`bin\`\` folder. If you want to run any example other than 0_HelloWorld and 3_SimpleAFKExample, you first need to run the provided \`\`download_mc_assets\`\` script to automatically populate the \`\`Assets\`\` folder by downloading and extracting the official Minecraft client. > release_note.txt | |
echo -en '\n' >> release_note.txt | |
echo "If you are on Windows < 10, the script won't work and you'll have to do it manually as curl and tar commands have only been added recently." >> release_note.txt | |
echo Linux version is compiled using Ubuntu with all dependencies included and should work on other distributions. You might have to install the unzip command to run the script though. >> release_note.txt | |
echo -en '\n' >> release_note.txt | |
echo "💡 If you need binaries for a previous version of Minecraft, you can open [an issue using this link](https://github.com/${{ github.repository }}/issues/new?assignees=&labels=version+request&template=version-request.yml&title=%5BVersion+request%5D) and it will be automagically generated for you." >> release_note.txt | |
echo -en '\n' >> release_note.txt | |
echo **Changes:** >> release_note.txt | |
- name: Append git commits | |
run: git log latest..HEAD --oneline --no-merges >> release_note.txt | |
- name: Rename artifacts | |
run: | | |
mv linux/botcraft.zip botcraft-linux-${{ steps.mc-version.outputs.version }}.zip | |
mv windows/botcraft.zip botcraft-windows-${{ steps.mc-version.outputs.version }}.zip | |
mv doc/doc.zip botcraft-doc-${{ steps.mc-version.outputs.version }}.zip | |
- name: Remove old latest release | |
run: gh release delete latest --repo ${{ github.repository }} --cleanup-tag -y | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Create new latest release | |
run: > | |
gh release create latest | |
botcraft-linux-${{ steps.mc-version.outputs.version }}.zip | |
botcraft-windows-${{ steps.mc-version.outputs.version }}.zip | |
botcraft-doc-${{ steps.mc-version.outputs.version }}.zip | |
--repo ${{ github.repository }} | |
--latest | |
-F release_note.txt | |
-t Latest | |
env: | |
GH_TOKEN: ${{ github.token }} | |
deploy_doc: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: | |
- build_os_matrix | |
# Only deploy the doc if a release was successfully created | |
- release | |
steps: | |
- name: Download doc artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: botcraft-doc | |
path: doc | |
- name: Download version artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: MC-version | |
path: version | |
- name: Unzip doc | |
working-directory: doc | |
run: cmake -E tar "xzf" "doc.zip" | |
- name: Rename version folder | |
run: mv doc/$(cat version/version.txt) doc/doc | |
- name: Upload raw doc files for pages | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: doc/doc | |
- name: Deploy to GitHub Pages | |
id: deployment | |
# Will automatically fetch the artifact "github-pages" uploaded using actions/upload-pages-artifact@v3 | |
uses: actions/deploy-pages@v4 |