Skip to content

CMake

CMake #10

Workflow file for this run

name: CMake
on:
workflow_dispatch:
inputs:
relName:
description: 'Release Name'
required: true
default: 'Release v1.0.0'
tagName:
description: 'Release tag'
required: true
default: ""
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Init and update submodules
run: |
git submodule init
git submodule update
- name: Install gcc-multilib, g++-multilib
run: sudo apt-get install -y gcc-multilib g++-multilib
- name: Build
# Build your program with the given configuration
run: |
chmod +x ./build.sh
./build.sh
shell: bash
- name: Create artifacts
uses: actions/upload-artifact@v3
with:
name: linux-artifacts
path: |
${{github.workspace}}/output
- name: Create Release
id: create_release
if: ${{ github.event_name == 'workflow_dispatch'}}
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.event.inputs.tagName }}
release_name: ${{ github.event.inputs.relName }}
body: ""
draft: false
prerelease: false
- name: Create zip of compile outputs
uses: papeloto/action-zip@v1
if: ${{ github.event_name == 'workflow_dispatch'}}
with:
files: output
dest: creamlinux.zip
- name: Upload Release Assets
if: ${{ github.event_name == 'workflow_dispatch'}}
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.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: ./creamlinux.zip
asset_name: creamlinux.zip
asset_content_type: application/zip
- name: Test
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: ctest -C ${{env.BUILD_TYPE}}