Skip to content

Update build.yml

Update build.yml #104

Workflow file for this run

name: Build
on:
push:
branches:
- master
workflow_dispatch:
jobs:
build-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y cmake libsfml-dev libudev-dev libopenal-dev libvorbis-dev libflac-dev libxrandr-dev libxcursor-dev libgtk-3-dev
- name: Setup SSH key and Install submodules
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git submodule update --init --recursive
- name: Configure and build
run: |
mkdir build && cd build
cmake ..
cmake --build .
- name: Upload executable
uses: actions/upload-artifact@v4
with:
name: ubuntu-executable
path: build/src/8ChocChip
build-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
build_type: [Release]
c_compiler: [gcc]
cpp_compiler: [g++]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Set up SSH
run: |
mkdir -p ~/.ssh
echo "$env:SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
- name: Set reusable strings
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
- name: Configure CMake
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
- name: Build CMake
run: |
cd build
cmake --build . --config Release
- name: Collect executable and assets
run: |
mkdir -p output
cp build/Release/10SecondIntern.exe output/
cp -r build/Release/assets output/
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts-windows
path: output/
- name: Test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: ctest --build-config ${{ matrix.build_type }}
# build-macos:
# runs-on: macos-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v2
# - name: Install dependencies
# run: brew update && brew install cmake sfml
# - name: Configure and build
# run: |
# mkdir build && cd build
# cmake ..
# cmake --build .
# - name: Upload executable
# uses: actions/upload-artifact@v2
# with:
# name: macos-executable
# path: build/src/8ChocChip