aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authoranzz1 <anzz1@live.com>2023-03-18 09:27:12 +0200
committerGitHub <noreply@github.com>2023-03-18 09:27:12 +0200
commitb2de7f18dfbb93463eeb5b4392117bbe82d5bd1b (patch)
treec45cde2e2824e1d175272cb133d5d0d4665d9c74 /.github/workflows
parenta29274789309029fd88a9465e6d0832d4632272b (diff)
CI Improvements (#230)
* CI Improvements Manual build feature, autoreleases for Windows * better CI naming convention use branch name in releases and tags
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build.yml57
1 files changed, 56 insertions, 1 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a94a389..9c1de58 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,5 +1,20 @@
name: CI
-on: [push, pull_request]
+
+on:
+ workflow_dispatch: # allows manual triggering
+ inputs:
+ create_release:
+ description: 'Create new release'
+ required: true
+ type: boolean
+ push:
+ paths: ['.github/workflows/**', 'CMakeLists.txt', 'Makefile', '**.h', '*.c', '**.cpp']
+ pull_request:
+ types: [opened, synchronize, edited, reopened, review_requested, ready_for_review]
+ paths: ['CMakeLists.txt', 'Makefile', '**.h', '*.c', '**.cpp']
+
+env:
+ BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs:
ubuntu-latest-make:
@@ -7,14 +22,17 @@ jobs:
steps:
- name: Clone
+ id: checkout
uses: actions/checkout@v1
- name: Dependencies
+ id: depends
run: |
sudo apt-get update
sudo apt-get install build-essential
- name: Build
+ id: make_build
run: |
make
@@ -42,13 +60,16 @@ jobs:
steps:
- name: Clone
+ id: checkout
uses: actions/checkout@v1
- name: Dependencies
+ id: depends
run: |
brew update
- name: Build
+ id: make_build
run: |
make
@@ -75,15 +96,49 @@ jobs:
steps:
- name: Clone
+ id: checkout
uses: actions/checkout@v1
- name: Build
+ id: cmake_build
run: |
mkdir build
cd build
cmake ..
cmake --build . --config Release
+ - name: Get commit hash
+ id: commit
+ if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
+ uses: pr-mpt/actions-commit-hash@v2
+
+ - name: Pack artifacts
+ id: pack_artifacts
+ if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
+ run: |
+ 7z a llama-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-x64.zip .\build\Release\*
+
+ - name: Create release
+ id: create_release
+ if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
+ uses: zendesk/action-create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}
+
+ - name: Upload release
+ id: upload_release
+ if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: .\llama-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-x64.zip
+ asset_name: llama-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-x64.zip
+ asset_content_type: application/octet-stream
+
# ubuntu-latest-gcc:
# runs-on: ubuntu-latest
#