Skip to content

Build and Test on c1f0907b407781938686a66d55d81388e1d3b808 #3

Build and Test on c1f0907b407781938686a66d55d81388e1d3b808

Build and Test on c1f0907b407781938686a66d55d81388e1d3b808 #3

Workflow file for this run

name: Build-and-Test
run-name: Build and Test on ${{ github.sha }}
on:
push:
branches:
- master
paths:
- 'proto/**'
- 'servers/**'
- 'utils/**'
- 'xclip/**'
- 'xscreenshot/**'
- 'res/**'
- 'tests/**'
- '*.c'
- '*.h'
- 'Makefile'
- 'docker/*'
- 'html/**'
- '.github/workflows/build-test.yml'
pull_request:
branches:
- master
workflow_call: null
jobs:
Style-Check:
uses: ./.github/workflows/check-style.yml
with:
trigger: "${{ github.event_name }}"
permissions:
contents: write
pull-requests: write
Build-and-Test-on-Linux:
runs-on: ubuntu-latest
timeout-minutes: 10
needs: Style-Check
strategy:
matrix:
distro:
- ubuntu
- fedora
- arch
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Build
run: docker build -t clipshare -f "docker/Dockerfile.${{matrix.distro}}" .
- name: Test
run: docker run clipshare
Build-and-Test-on-Windows:
runs-on: windows-latest
timeout-minutes: 10
needs: Style-Check
defaults:
run:
shell: msys2 {0}
steps:
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-make
mingw-w64-x86_64-openssl
mingw-w64-x86_64-libpng
mingw-w64-x86_64-libunistring
mingw-w64-x86_64-python
findutils
diffutils
openbsd-netcat
sed
- name: Setup make
run: ln -s /mingw64/bin/mingw32-make.exe /mingw64/bin/make.exe
- name: Check out repository code
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Build
run: |
make
make no_ssl
- name: Test
run: make test
Build-and-Test-on-macOS:
timeout-minutes: 10
needs: Style-Check
strategy:
matrix:
os:
- macos-latest
- macos-13
runs-on: ${{ matrix.os }}
steps:
- name: Install build dependencies
run: brew install openssl@3 libpng libunistring
- name: Check out repository code
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Build
run: |
make
make no_ssl
- name: Install test dependencies
run: |
brew install coreutils gnu-sed
echo "$(brew --prefix coreutils)"'/libexec/gnubin' >> $GITHUB_PATH
echo "$(brew --prefix gnu-sed)"'/libexec/gnubin' >> $GITHUB_PATH
- name: Test
run: |
export TERM=xterm-256color
make test
CodeQL_Analyze:
runs-on: ubuntu-latest
timeout-minutes: 30
needs:
- Build-and-Test-on-Linux
- Build-and-Test-on-macOS
permissions:
security-events: write
steps:
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y apt-transport-https
sudo apt-get install --no-install-recommends -y coreutils gcc make \
libc6-dev libx11-dev libxmu-dev libxcb-randr0-dev libpng-dev libssl-dev libunistring-dev
- name: Check out repository code
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: 'c-cpp'
trap-caching: false
- name: Build using make
run: make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:c-cpp"