mirror of
https://github.com/anticitizn/creamlinux.git
synced 2025-12-05 21:15:40 -05:00
85 lines
2.9 KiB
YAML
85 lines
2.9 KiB
YAML
name: CMake
|
|
|
|
on:
|
|
push:
|
|
workflow_dispatch:
|
|
inputs:
|
|
relName:
|
|
description: 'Release Name'
|
|
required: true
|
|
default: 'Release v1.0.0'
|
|
tagName:
|
|
description: 'Release tag'
|
|
required: true
|
|
default: ""
|
|
pull_request:
|
|
|
|
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}}
|
|
|