Skip to content

Polish wording of help dialogue. #167

Polish wording of help dialogue.

Polish wording of help dialogue. #167

Workflow file for this run

on: [push]
name: Continuous Integration / Continuous Deployment (Unix-based)
permissions:
contents: write
jobs:
check:
name: Verify code behaves as intended
strategy:
matrix:
os: [ubuntu-22.04, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Install dependencies for the project (macOS, Linux)
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
pipx install meson
sudo apt update && sudo apt install bison flex cmake libfl-dev
# This installs the latest version of clang automatically.
# This is needed for backwards compatibility purposes.
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 19
elif [ "$RUNNER_OS" == "macOS" ]; then
brew upgrade && brew install meson bison flex
# Finally, we want to support macOS since Big Sur.
echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> $GITHUB_ENV
fi
- name: Checkout sources
uses: actions/checkout@v4
- name: Install subprojects
run: meson wrap install fmt
- name: Setup build directory (macOS)
if: runner.os == 'macOS'
run: meson setup --native-file macos-build.ini build
- name: Setup build directory (Linux)
if: runner.os != 'macOS'
run: meson setup --native-file linux-build.ini build
- name: Run all tests
run: meson test -C build
upload:
name: Upload compiled binaries
needs: check
strategy:
matrix:
os: [ubuntu-22.04, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Install dependencies for the project (macOS, Linux)
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
pipx install meson
# This installs the latest version of clang automatically.
# This is needed for backwards compatibility purposes.
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 19
sudo apt update && sudo apt install libbison-dev bison flex cmake libfl-dev
elif [ "$RUNNER_OS" == "macOS" ]; then
brew upgrade && brew install meson bison flex
# We want to support macOS since Big Sur.
echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> $GITHUB_ENV
fi
- name: Checkout sources
uses: actions/checkout@v4
- name: Install subprojects
run: meson wrap install fmt
- name: Setup build directory (macOS)
if: runner.os == 'macOS'
run: meson setup -Dbuild_for_release=true --native-file macos-build.ini build
- name: Setup build directory (Linux)
if: runner.os != 'macOS'
run: meson setup -Dbuild_for_release=true --native-file linux-build.ini build
- name: Compile the project
run: meson compile -C build
- name: Strip unnecessary bits from the executables
run: |
strip build/tslchecker
strip build/tslcompiler
- name: Upload TSLChecker binary if this is not a release.
uses: actions/upload-artifact@v4
if: github.ref_type != 'tag'
with:
path: build/tslchecker
name: tslchecker-${{ matrix.os }}
- name: Upload TSLCompiler binary if this is not a release.
uses: actions/upload-artifact@v4
if: github.ref_type != 'tag'
with:
path: build/tslcompiler
name: tslcompiler-${{ matrix.os }}
- name: Prepare artifacts for release if it exists.
if: github.ref_type == 'tag'
run: |
cp build/tslchecker tslchecker
tar -cvzf tslchecker-${{ matrix.os }}.tar.gz tslchecker
cp build/tslcompiler tslcompiler
tar -cvzf tslcompiler-${{ matrix.os }}.tar.gz tslcompiler
- name: Upload TSLChecker binary to release if it exists.
uses: softprops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
files: tslchecker-${{ matrix.os }}.tar.gz
- name: Upload TSLCompiler binary to release if it exists.
uses: softprops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
files: tslcompiler-${{ matrix.os }}.tar.gz