[META/ADD] Start writing actions/workflows.

This commit is contained in:
lda 2023-11-02 17:24:55 +01:00
parent 4674621637
commit dc5e95e4c0
Signed by: lda
GPG key ID: 6898757653ABE3E6
3 changed files with 105 additions and 0 deletions

View file

@ -0,0 +1,21 @@
name: Setup a basic build environment
description: Setup a basic build environment with a proper SSL library
inputs:
compiler:
description: Compiler used for setting up everything
required: false
default: gcc
ssl:
description: SSL library used for Cytoplasm later on
required: false
default: openssl
outputs:
compiler:
description: Compiler binary
value: '${{ steps.install.outputs.compiler }}'
runs:
- run: 'setup "${{ runner.os }}" "${{inputs.compiler}}" "${{inputs.ssl}}"'
shell: bash

View file

@ -0,0 +1,60 @@
#!/bin/bash
COMPILER=$2
SSL=$3
DISTRO=$(grep -E '^NAME=' /etc/os-release |
cut -d'=' -f2 |
tr -d '"')
# Installs a package using the native OS's package manager.
install_pkg() {
case $DISTRO in
"Ubuntu")
"Debian GNU/Linux" )
apt install -y $1
;;
"Arch Linux" )
pacman -Syu --noconfirm $1
;;
esac
}
install_compiler() {
echo '::group::Setting up a compiler'
case $DISTRO in
"Ubuntu" )
"Debian GNU/Linux" )
install_pkg build-essential
[ $COMPILER = 'clang' ] && install_pkg clang
CC=gcc
[ $COMPILER = 'clang' ] && CC=clang
;;
"Arch Linux" )
install_pkg $COMPILER make
CC=gcc
[ $COMPILER = 'clang' ] && CC=clang
esac
echo '::endgroup::'
}
install_ssl() {
echo '::group::Setting up SSL'
case $DISTRO in
"Ubuntu" )
"Debian GNU/Linux" )
# Doesn't seem like Debian got LibreSSL
[ $SSL = 'libressl' ] && echo "::error ::LibreSSL is not on Debian"
install_pkg openssl
;;
"Arch Linux" )
install_pkg $SSL
esac
echo '::endgroup::'
}
# Install the compiler and SSL
install_compiler
install_ssl
echo "compiler=$CC" >> "$GITHUB_OUTPUT"

View file

@ -0,0 +1,24 @@
name: Testing pushed commits
run-name: "Testing pushed changes (HEAD@${{ github.head_ref }}) on ${{ runner.os }}"
on: [push]
jobs:
# Compiles out everything.
compile-all:
# TODO: More architectures
runs-on: ubuntu-latest
steps:
# Setups a basic build environment.
- name: Setup build environment
uses: ./.gitea/actions/setup-build
# TODO
# Compile out Cytoplasm
#- name: Compiles Cytoplasm
# uses: ./.gitea/actions/build-latest-cytoplasm
# Finally, builds out Telodendria with everything.
#- name: Compiles Telodendria
# uses: ./.gitea/actions/build-telodendria