Skip to content

Merge pull request #9 from JerboaBurrow/moveOutExampleFiles #22

Merge pull request #9 from JerboaBurrow/moveOutExampleFiles

Merge pull request #9 from JerboaBurrow/moveOutExampleFiles #22

Workflow file for this run

name: ParticlesFullTestsAndRelease
on:
push:
branches: [ "main" ]
tags: 'v*'
paths-ignore:
- 'doc/**'
- '.github/**'
pull_request:
workflow_dispatch:
jobs:
linuxXlinux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y build-essential xorg-dev mesa-common-dev libx11-dev libxrandr-dev libgl1-mesa-dev libglu1-mesa-dev libfreetype6-dev libopenal-dev libsndfile1-dev libudev-dev libxinerama-dev libxcursor-dev xvfb x11-apps vulkan-tools libvulkan-dev vulkan-validationlayers-dev spirv-tools
- name: linux-linux
run: |
./build.sh -t -r -e
mkdir linux-x86_64
cp -r build/Examples linux-x86_64-examples
cp build/libjGL.a linux-x86_64/libjGL-linux-x86_64.a
mkdir headers
cp -r include/jGL/* headers/
cp LICENSE linux-x86_64-examples/
cp LICENSE linux-x86_64/
- name: Tests
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
export DISPLAY=:99
sudo Xvfb :99 -screen 0 800x600x24 &
sleep 5
MESA_GL_VERSION_OVERRIDE=3.3 ctest --exclude-regex Vulkan --extra-verbose --output-on-failure
- name: build artifact
uses: actions/upload-artifact@v3
with:
name: linux-x86_64
path: linux-x86_64
- name: build examples artifact
uses: actions/upload-artifact@v3
with:
name: linux-x86_64-examples
path: linux-x86_64-examples
- name: build header artifact
uses: actions/upload-artifact@v3
with:
name: headers
path: headers
linuxXwindows:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y xorg-dev build-essential mesa-common-dev libx11-dev libxrandr-dev libgl1-mesa-dev libglu1-mesa-dev libfreetype6-dev libopenal-dev libsndfile1-dev libudev-dev g++-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix libxinerama-dev libxcursor-dev vulkan-tools libvulkan-dev vulkan-validationlayers-dev spirv-tools
- name: linux-X-windows
run: |
./build.sh -t -w -r -e
mkdir windows
cp -r build/Examples windows-examples
cp build/libjGL.a windows/libjGL-windows.a
cp LICENSE windows-examples/
cp LICENSE windows/
- name: buildArtifact
uses: actions/upload-artifact@v3
with:
name: windows
path: windows
- name: buildArtifact
uses: actions/upload-artifact@v3
with:
name: windows-examples
path: windows-examples
linuxRun:
needs: linuxXlinux
runs-on: ubuntu-22.04
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y xvfb x11-apps imagemagick
- name: get linux build
uses: actions/download-artifact@v3
with:
name: linux-x86_64-examples
- name: launch and screenshot
run: |
ls
cd Particles
chmod +x Particles
export DISPLAY=:99
sudo Xvfb :99 -screen 0 800x600x24 &
sleep 5
MESA_GL_VERSION_OVERRIDE=3.3 ./Particles &
export PID=$!
sleep 10
xwd -root -silent | convert xwd:- png:screenshot.png
sleep 5 && kill $PID
- name: upload artifact
uses: actions/upload-artifact@v3
with:
name: screenshot
path: Particles/screenshot.png
release:
needs: [linuxXlinux, linuxXwindows]
if: github.ref_type == 'tag'
runs-on: ubuntu-22.04
steps:
- name: get headers
uses: actions/download-artifact@v3
with:
name: headers
- name: get linux build
uses: actions/download-artifact@v3
with:
name: linux-x86_64
- name: get windows build
uses: actions/download-artifact@v3
with:
name: windows
- name: pack headers
run: |
ls
mkdir headers
mv *.h headers/
mv Display headers
mv OpenGL headers
mv Vulkan headers
zip -r jGL.zip *
# https://github.com/softprops/action-gh-release
- name: release
uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: true
name: "release-${{ github.ref_name }}"
tag_name: ${{ github.ref }}
files: jGL.zip
# - name: create release
# id: createRelease
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# draft: true
# prerelease: false
# release_name: "release-${{ github.ref_name }}"
# tag_name: ${{ github.ref }}
# - name: upload linux release artifact
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.createRelease.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
# asset_path: Particles-linux-x86_64
# asset_name: linux
# asset_content_type: application/zip
# retention-days: 30
# - name: upload windows release artifact
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.createRelease.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
# asset_path: Particles.exe
# asset_name: windows
# asset_content_type: application/zip
# retention-days: 30