Merge pull request #137 from Silverlan/develop #1086
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: Build Linux | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
concurrency: | |
group: environment-lin-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: write | |
env: | |
# See https://github.com/git-lfs/git-lfs/issues/5749 | |
GIT_CLONE_PROTECTION_ACTIVE: 'false' | |
jobs: | |
build: | |
permissions: | |
actions: write | |
contents: write | |
issues: read | |
pull-requests: read | |
name: Build - ${{ matrix.config.os }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- os: ubuntu-24.04 | |
name: "Ubuntu 24.04" | |
steps: | |
- name: Setup Pragma | |
uses: Silverlan/pragma/github_actions/setup@main | |
with: | |
clone_url: "https://github.com/${{ github.repository }}.git" | |
- name: Build Pragma | |
uses: ./pragma/github_actions/build | |
id: build-pragma | |
with: | |
build-args: "--with-pfm --with-all-pfm-modules --with-vr --with-networking --with-lua-debugger=0 --with-swiftshader" | |
- name: Create Release Archive | |
shell: bash | |
run: | | |
curDir="$PWD" | |
# Add info file | |
cd "${{ steps.build-pragma.outputs.install-dir }}" | |
echo -e "ref: $GITHUB_REF \ncommit: $GITHUB_SHA\nbuild: $(date +"%Y-%m-%dT%H:%M:%SZ")" \ | |
> ./git_info.txt | |
# Delete .git folders | |
find . -name ".git*" -exec rm -R {} \; 2>/dev/null || true | |
# Enable experimental updates | |
cd cfg | |
echo "pfm_enable_experimental_updates \"1\"" >> client.cfg | |
cd .. | |
tar -czvf pragma-lin64.tar.gz * | |
mv "${{ steps.build-pragma.outputs.install-dir }}/pragma-lin64.tar.gz" "$curDir/" | |
- name: Generate nightly tag description | |
shell: bash | |
run: | | |
curDate=$(date -u '+%Y-%m-%d %H:%M:%S %Z') | |
printf "This is an auto-generated pre-release, built from the latest version of the source code.\nIt includes all files necessary to run Pragma, as well as the latest version of the Pragma Filmmaker, however functionality and stability are **not** guaranteed.\n\nLatest release date: $curDate" > tag_text.txt | |
- name: Update nightly tag description | |
uses: softprops/action-gh-release@v0.1.15 | |
with: | |
body_path: tag_text.txt | |
tag_name: nightly | |
prerelease: true | |
- name: Update nightly release | |
uses: Silverlan/Releaser/releaser/composite@main | |
with: | |
tag: nightly | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: "pragma-lin64.tar.gz" | |
#- name: Run Tests | |
# uses: benc-uk/workflow-dispatch@v1 | |
# with: | |
# workflow: pragma-tests-ci.yml | |
# inputs: '{ "os": "ubuntu" }' | |
- name: Generate File Lists | |
shell: bash | |
if: always() | |
run: | | |
sudo apt install tree | |
curDir=$(pwd) | |
if [ -d "pragma/build" ]; then | |
cd pragma/build | |
sudo tree --dirsfirst > "$curDir/files_pragma_build.txt" | |
cd "$curDir" | |
fi | |
if [ -d "pragma/deps" ]; then | |
cd pragma/deps | |
sudo tree --dirsfirst > "$curDir/files_pragma_deps.txt" | |
cd "$curDir" | |
fi | |
if [ -d "pragma/build/install" ]; then | |
cd pragma/build/install | |
sudo tree --dirsfirst > "$curDir/files_pragma_install.txt" | |
cd "$curDir" | |
fi | |
mkdir artifacts | |
cp -u "pragma/build/CMakeCache.txt" artifacts/ | |
cp -u "files_pragma_build.txt" artifacts/ | |
cp -u "files_pragma_deps.txt" artifacts/ | |
cp -u "files_pragma_install.txt" artifacts/ | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: Artifacts | |
overwrite: true | |
path: "artifacts" | |
- name: Handle Error | |
uses: Silverlan/common_actions/action_handle_error@main | |
if: failure() |