Пересобранный и видоизмененный conky для ОСГОС

This commit is contained in:
commit 3a48cf8c86
738 changed files with 217718 additions and 0 deletions

3
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,3 @@
# These are supported funding model platforms
github: brndnmtthws

90
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View file

@ -0,0 +1,90 @@
name: 🐞 Bug Report
description: 'File a bug report: crashes, unexpected behaviour, and other errors go here.'
title: '[Bug]: '
labels: ['bug', 'triage']
body:
- type: markdown
attributes:
value: |
If you haven't done so already, please take a moment to search the [existing issues](https://github.com/brndnmtthws/conky/issues) to see if this has been previously reported. If not, carry on.
Thanks for taking the time to fill out this bug report!
- type: textarea
id: what-happened
attributes:
label: What happened?
description: >
Describe the problem, what you expected to happen, and any other
relevant info. You can attach logs, stack traces, and config below. If
required, include screenshots here which demonstrate the problem.
placeholder: Here's what happened
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: What version of Conky are you running?
validations:
required: true
- type: dropdown
id: os
validations:
required: true
attributes:
label: Which OS/distro are you seeing the problem on?
options:
- Ubuntu
- Fedora
- Debian
- Arch Linux
- Gentoo
- Linux (other)
- macOS
- type: textarea
id: config
attributes:
label: Conky config
description: Paste your Conky config here if it's relevant.
render: Lua
- type: markdown
attributes:
value: |
## Getting a stack trace
If you are reporting a crash, please attach a stack trace below.
To create one with `gdb`, try the following steps:
```shell
# Start 'conky'
$ gdb conky
# Run 'conky' with a config.
(gdb) run -c ~/.your_conky.conf
# Wait for a crash to occur, then run this.
(gdb) bt full
# ... stack trace output here ...
```
Here are some additional resources on obtaining stack traces:
- [Arch Linux Wiki](https://wiki.archlinux.org/index.php/Debug_-_Getting_Traces)
- [Ubuntu Wiki](https://wiki.ubuntu.com/DebuggingProgramCrash)
- [AskUbuntu - Where do I find core dump files, and how do I view and analyze the backtrace (stack trace) in one?](https://askubuntu.com/a/1349048)
- [Julia Evans - How to get a core dump for a segfault on Linux](https://jvns.ca/blog/2018/04/28/debugging-a-segfault-on-linux/)
- [GDB Documentation](https://sourceware.org/gdb/current/onlinedocs/gdb/)
- [lldb Documentation](https://lldb.llvm.org/use/tutorial.html)
- type: textarea
id: stacktrace
attributes:
label: Stack trace
description: Paste your stacktrace here if you have one.
render: GDB
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: Shell

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: 🙏 General questions & help
url: https://github.com/brndnmtthws/conky/discussions/categories/q-a
about: Please ask and answer general questions using GitHub Discussions
- name: 💡 New ideas and feature requests
url: https://github.com/brndnmtthws/conky/discussions/categories/ideas
about: Request and discuss enhancements using GitHub Discussions

24
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,24 @@
# Set update schedule for GitHub Actions
version: 2
updates:
# Maintain dependencies for actions
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
groups:
actions:
patterns:
- '*'
# Maintain dependencies for web docs/npm
- package-ecosystem: 'npm'
directory: '/web'
schedule:
interval: 'weekly'
groups:
web-deps:
patterns:
# Group all the web deps together to keep the PR spam down
- '*'

216
.github/labeler.yml vendored Normal file
View file

@ -0,0 +1,216 @@
documentation:
- changed-files:
- any-glob-to-any-file:
- doc/*
- doc/**/*
- data/conky*.conf
extras:
- changed-files:
- any-glob-to-any-file:
- extras/*
- extras/**/*
sources:
- changed-files:
- any-glob-to-any-file:
- src/*
- src/**/*
tests:
- changed-files:
- any-glob-to-any-file:
- tests/**/*
- tests/*
web:
- changed-files:
- any-glob-to-any-file:
- web/*
- web/**/*
appimage:
- changed-files:
- any-glob-to-any-file:
- appimage/*
- appimage/**/*
3rdparty:
- changed-files:
- any-glob-to-any-file:
- 3rdparty/*
- 3rdparty/**/*
gh-actions:
- changed-files:
- any-glob-to-any-file:
- .github/workflows/*
- .github/workflows/**/*
- .github/labeler.yml
- .github/pull_request_template.md
dependencies:
- changed-files:
- any-glob-to-any-file:
- web/package-lock.json
- cmake/ConkyPlatformChecks.cmake
audio:
- changed-files:
- any-glob-to-any-file:
- src/audacious.cc
- src/audacious.h
- src/cmus.cc
- src/cmus.h
- src/libmpdclient.cc
- src/libmpdclient.h
- src/mpd.cc
- src/mpd.h
- src/moc.cc
- src/moc.h
- src/mixer.cc
- src/mixer.h
- src/xmms2.cc
- src/xmms2.h
- src/pulseaudio.cc
- src/pulseaudio.h
power:
- changed-files:
- any-glob-to-any-file:
- src/apcupsd.cc
- src/apcupsd.h
- src/bsdapm.cc
- src/bsdapm.h
- src/smapi.cc
- src/smapi.h
'display: console':
- changed-files:
- any-glob-to-any-file:
- src/display-console.cc
- src/display-console.hh
'display: file':
- changed-files:
- any-glob-to-any-file:
- src/display-file.cc
- src/display-file.hh
'display: http':
- changed-files:
- any-glob-to-any-file:
- src/display-http.cc
- src/display-http.hh
'display: ncurses':
- changed-files:
- any-glob-to-any-file:
- src/nc.cc
- src/nc.h
- src/display-ncurses.cc
- src/display-ncurses.hh
'display: wayland':
- changed-files:
- any-glob-to-any-file:
- src/wl.cc
- src/wl.h
- src/wlr-layer-shell-unstable-v1.xml
- src/display-wayland.cc
- src/display-wayland.hh
'display: x11':
- changed-files:
- any-glob-to-any-file:
- src/x11-color.cc
- src/x11-color.h
- src/x11.cc
- src/x11.h
- src/display-x11.cc
- src/display-x11.hh
'build system':
- changed-files:
- any-glob-to-any-file:
- '**/CMakeLists.txt'
- '*.cmake'
cairo:
- changed-files:
- any-glob-to-any-file:
- 'lua/*cairo*'
'disk io':
- changed-files:
- any-glob-to-any-file:
- src/diskio.cc
- src/diskio.h
cpu:
- changed-files:
- any-glob-to-any-file:
- src/cpu.cc
- src/cpu.h
- src/proc.cc
- src/proc.h
- src/top.cc
- src/top.h
lua:
- changed-files:
- any-glob-to-any-file:
- lua/*
- lua/**/*
- src/llua.cc
- src/llua.h
- src/luamm.cc
- src/luamm.h
- src/lua-config.cc
- src/lua-config.hh
macos:
- changed-files:
- any-glob-to-any-file:
- src/darwin_sip.h
- src/darwin.h
- src/darwin.mm
'mouse events':
- changed-files:
- any-glob-to-any-file:
- src/scroll.cc
- src/scroll.h
- src/mouse-events.cc
- src/mouse-events.h
networking:
- changed-files:
- any-glob-to-any-file:
- src/net_stat.cc
- src/net_stat.h
- src/tcp-portmon.cc
- src/tcp-portmon.h
- src/read_tcpip.cc
- src/read_tcpip.h
nvidia:
- changed-files:
- any-glob-to-any-file:
- src/nvidia.cc
- src/nvidia.h
rendering:
- changed-files:
- any-glob-to-any-file:
- src/text_object.cc
- src/text_object.h
- src/specials.cc
- src/specials.h
text:
- changed-files:
- any-glob-to-any-file:
- src/text_object.cc
- src/text_object.h
- src/template.cc
- src/template.h
- src/tailhead.cc
- src/tailhead.h
- src/specials.cc
- src/specials.h

12
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,12 @@
# Checklist
- [ ] I have described the changes
- [ ] I have linked to any relevant GitHub issues, if applicable
- [ ] Documentation in `doc/` has been updated
- [ ] All new code is licensed under GPLv3
## Description
* Describe the changes, why they were necessary, etc
* Describe how the changes will affect existing behaviour.
* Describe how you tested and validated your changes.
* Include any relevant screenshots/evidence demonstrating that the changes work and have been tested.

19
.github/release.yml vendored Normal file
View file

@ -0,0 +1,19 @@
changelog:
categories:
- title: 🏕 Features
labels:
- feature
- title: 🐞 Bug fixes
labels:
- bug
- title: 🎛️ Miscellaneous
labels:
- '*'
exclude:
labels:
- dependencies
- bug
- feature
- title: 👒 Dependencies
labels:
- dependencies

46
.github/scripts/docker-build.bash vendored Executable file
View file

@ -0,0 +1,46 @@
#!/usr/bin/env bash
set -ex
DOCKERHUB_USERNAME="${DOCKERHUB_USERNAME:-conky}"
DOCKERHUB_IMAGE_ID=$DOCKERHUB_USERNAME/$IMAGE_NAME
# Change all uppercase to lowercase
DOCKERHUB_IMAGE_ID=$(echo $DOCKERHUB_IMAGE_ID | tr '[A-Z]' '[a-z]')
image_tags=()
# Strip git ref prefix from version
VERSION_TAG=$(echo $GITHUB_REF | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
VERSION_TAG=$(echo $VERSION_TAG | sed -e 's/^v//')
fi
image_tags+=("--tag" "$DOCKERHUB_IMAGE_ID:$VERSION_TAG")
# tag as latest on releases
if [[ "$RELEASE" == ON ]]; then
image_tags+=("--tag" "$DOCKERHUB_IMAGE_ID:latest")
fi
# Only build amd64 on PRs, build all platforms on main. The arm builds
# take far too long.
image_platforms="--platform linux/amd64"
push_image=""
cache_tag="pr-cache"
# Only push on main
if [[ "$GITHUB_REF" == refs/heads/main ]]; then
push_image="--push"
image_platforms="--platform linux/arm/v7,linux/arm64/v8,linux/amd64"
cache_tag="main-cache"
fi
docker buildx build \
${push_image} \
${image_platforms} \
--cache-from=type=registry,ref=$DOCKERHUB_USERNAME/$IMAGE_NAME:$cache_tag \
--cache-to=type=registry,ref=$DOCKERHUB_USERNAME/$IMAGE_NAME:$cache_tag,mode=max \
"${image_tags[@]}" \
.

View file

@ -0,0 +1,172 @@
name: Build and test on Linux
on:
push:
branches:
- main
paths-ignore:
- web/**
- doc/**
pull_request:
branches:
- main
paths-ignore:
- web/**
- doc/**
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
strategy:
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
x11: [ON, OFF]
wayland: [ON, OFF]
compiler:
- clang
- gcc
compiler_version:
- 9
- 10
- 11
- 12
- 13
- 14
- 15
exclude:
# 9 only exists for gcc
- compiler: clang
compiler_version: 9
# 13, 14, 15 only exist for clang
- compiler: gcc
compiler_version: 13
- compiler: gcc
compiler_version: 14
- compiler: gcc
compiler_version: 15
# ubuntu-20.04
- os: ubuntu-20.04
compiler: gcc
compiler_version: 11
- os: ubuntu-20.04
compiler: gcc
compiler_version: 12
- os: ubuntu-20.04
compiler: clang
compiler_version: 13
- os: ubuntu-20.04
compiler: clang
compiler_version: 14
- os: ubuntu-20.04
compiler: clang
compiler_version: 15
# ubuntu-22.04
- os: ubuntu-22.04
compiler: clang
compiler_version: 10
- os: ubuntu-22.04
compiler: clang
compiler_version: 11
- os: ubuntu-22.04
compiler: clang
compiler_version: 12
runs-on: ${{ matrix.os }}
steps:
- run: sudo apt-get -qq update
- name: Install dependencies
run: |
sudo apt-get install -yqq --no-install-recommends \
audacious-dev \
cmake \
gawk \
gperf \
lcov \
libaudclient-dev \
libcairo2-dev \
libpango1.0-dev \
libcurl4-gnutls-dev \
libdbus-glib-1-dev \
libglib2.0-dev \
libical-dev \
libimlib2-dev \
libircclient-dev \
libiw-dev \
liblua5.3-dev \
libmicrohttpd-dev \
libmysqlclient-dev \
libpulse-dev \
librsvg2-dev \
libsystemd-dev \
libwayland-bin \
libwayland-dev \
libx11-dev \
libxdamage-dev \
libxext-dev \
libxft-dev \
libxinerama-dev \
libxml2-dev \
libxmmsclient-dev \
libxnvctrl-dev \
ncurses-dev \
ninja-build \
wayland-protocols
- name: Install libc++
if: matrix.compiler == 'clang'
run: |
sudo apt-get install -yqq --no-install-recommends \
libc++-${{ matrix.compiler_version }}-dev \
libc++abi-${{ matrix.compiler_version }}-dev
- name: Checkout
uses: actions/checkout@v4
- name: Configure with CMake
run: |
set -x # show the commands we're running
[[ "${{ matrix.compiler }}" == "clang"* ]] && CC=clang-${{ matrix.compiler_version }}
[[ "${{ matrix.compiler }}" == "clang"* ]] && CXX=clang++-${{ matrix.compiler_version }}
[[ "${{ matrix.compiler }}" == "gcc"* ]] && CC=gcc-${{ matrix.compiler_version }}
[[ "${{ matrix.compiler }}" == "gcc"* ]] && CXX=g++-${{ matrix.compiler_version }}
# Enable librsvg by default, disable for older versions of Ubuntu
# because we need librsvg>=2.52
RSVG_ENABLED=ON
[[ "${{ matrix.os }}" == "ubuntu-20.04"* ]] && RSVG_ENABLED=OFF
mkdir build
cd build
cmake .. -G Ninja \
-DBUILD_AUDACIOUS=ON \
-DBUILD_HTTP=ON \
-DBUILD_ICAL=ON \
-DBUILD_ICONV=ON \
-DBUILD_IRC=ON \
-DBUILD_IRC=ON \
-DBUILD_JOURNAL=ON \
-DBUILD_LUA_CAIRO=ON \
-DBUILD_LUA_CAIRO_XLIB=ON \
-DBUILD_LUA_IMLIB2=ON \
-DBUILD_LUA_RSVG=${RSVG_ENABLED} \
-DBUILD_MYSQL=ON \
-DBUILD_NVIDIA=ON \
-DBUILD_PULSEAUDIO=ON \
-DBUILD_CURL=ON \
-DBUILD_RSS=ON \
-DBUILD_TESTS=ON \
-DBUILD_WLAN=ON \
-DBUILD_WAYLAND=${{ matrix.wayland }}\
-DBUILD_X11=${{ matrix.x11 }} \
-DBUILD_XMMS2=ON \
-DCMAKE_C_COMPILER=$CC \
-DCMAKE_CXX_COMPILER=$CXX \
-DMAINTAINER_MODE=ON
- name: Compile
run: cmake --build build
- name: Test
working-directory: build
run: ctest

View file

@ -0,0 +1,69 @@
name: Build and test on macOS
on:
push:
branches:
- main
paths-ignore:
- web/**
- doc/**
pull_request:
branches:
- main
paths-ignore:
- web/**
- doc/**
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
env:
HOMEBREW_NO_INSTALL_UPGRADE: 1
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
strategy:
matrix:
os:
- macos-11
- macos-12
- macos-13
- macos-14
runs-on: ${{ matrix.os }}
steps:
- name: Install dependencies
run: |
brew install --force \
cmake \
curl \
freetype \
gettext \
gperf \
imlib2 \
lcov \
librsvg \
libxfixes \
libxft \
libxi \
libxinerama \
libxml2 \
lua \
ninja \
pkg-config \
|| true # Ignore errors
- name: Checkout
uses: actions/checkout@v4
- run: mkdir build
- name: Configure with CMake
working-directory: build
run: |
cmake .. -G Ninja \
-DMAINTAINER_MODE=ON \
-DBUILD_WAYLAND=OFF \
-DBUILD_RSS=ON \
-DBUILD_CURL=ON \
-DBUILD_TESTS=ON
- name: Compile
run: cmake --build build
- name: Test
working-directory: build
run: ctest

88
.github/workflows/codeql.yml vendored Normal file
View file

@ -0,0 +1,88 @@
name: 'CodeQL'
on:
schedule:
- cron: '20 2 * * 0'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['cpp', 'javascript', 'python']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- run: sudo apt-get -qq update
- name: Install dependencies
if: matrix.language == 'cpp'
run: |
sudo apt-get install -yqq --no-install-recommends \
audacious-dev \
cmake \
gawk \
gperf \
lcov \
libaudclient-dev \
libc++-14-dev \
libc++abi-14-dev \
libcairo2-dev \
libcurl4-gnutls-dev \
libdbus-glib-1-dev \
libglib2.0-dev \
libical-dev \
libimlib2-dev \
libircclient-dev \
libiw-dev \
liblua5.3-dev \
libmicrohttpd-dev \
libmysqlclient-dev \
libpulse-dev \
librsvg2-dev \
libsystemd-dev \
libwayland-bin \
libwayland-dev \
libx11-dev \
libxdamage-dev \
libxext-dev \
libxft-dev \
libxinerama-dev \
libxml2-dev \
libxmmsclient-dev \
libxnvctrl-dev \
ncurses-dev \
ninja-build \
wayland-protocols
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: '/language:${{matrix.language}}'

51
.github/workflows/docker.yaml vendored Normal file
View file

@ -0,0 +1,51 @@
name: Docker
on:
push:
branches:
- main
paths-ignore:
- web/**
- doc/**
pull_request:
branches:
- main
paths-ignore:
- web/**
- doc/**
# Publish `v1.2.3` tags as releases.
tags:
- v*
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
docker-buildx:
env:
IMAGE_NAME: conky
DOCKER_BUILDKIT: 1
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ env.DOCKERHUB_USERNAME != '' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
env:
RELEASE: "${{ startsWith(github.ref, 'refs/tags/') && 'ON' || 'OFF' }}"
GITHUB_REF: ${{ github.ref }}
run: ./.github/scripts/docker-build.bash

18
.github/workflows/labeler.yml vendored Normal file
View file

@ -0,0 +1,18 @@
name: 'Pull Request Labeler'
on:
- pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run labeler
uses: actions/labeler@v5
with:
sync-labels: true
repo-token: '${{ secrets.GITHUB_TOKEN }}'

28
.github/workflows/nix.yaml vendored Normal file
View file

@ -0,0 +1,28 @@
name: 'Nix build'
on:
push:
branches:
- main
paths-ignore:
- web/**
- doc/**
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-check:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v11
- name: Setup Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v6
- run: nix build
- run: nix flake check

150
.github/workflows/publish-appimage.yml vendored Normal file
View file

@ -0,0 +1,150 @@
name: Build AppImage
on:
push:
branches:
- main
tags:
- v*
paths-ignore:
- web/**
- doc/**
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
arch:
- x86_64
permissions:
contents: write
discussions: write
steps:
- run: sudo apt-get -qq update
- name: Install dependencies
run: |
sudo apt-get install -yqq --no-install-recommends \
audacious-dev \
cmake \
gawk \
gperf \
lcov \
libaudclient-dev \
libcairo2-dev \
libcurl4-gnutls-dev \
libdbus-glib-1-dev \
libfuse2 \
libglib2.0-dev \
libical-dev \
libimlib2-dev \
libircclient-dev \
libiw-dev \
liblua5.3-dev \
libmicrohttpd-dev \
libmysqlclient-dev \
libpulse-dev \
librsvg2-dev \
libsystemd-dev \
libwayland-bin \
libwayland-dev \
libx11-dev \
libxdamage-dev \
libxext-dev \
libxft-dev \
libxinerama-dev \
libxml2-dev \
libxmmsclient-dev \
libxnvctrl-dev \
ncurses-dev \
ninja-build \
pandoc \
python3 \
wayland-protocols \
&&
pip3 install --upgrade pyyaml
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Import GPG Deploy Key
# only run on main branch
if: github.ref == 'refs/heads/main'
run: |
echo "${{ secrets.GPG_DEPLOY_KEY }}" > appimage/secret.gpg
gpg --import appimage/secret.gpg
- name: Set clang version to 12 for ubuntu-20.04
if: matrix.os == 'ubuntu-20.04'
run: |
echo "CLANG_VERSION=12" | tee -a $GITHUB_ENV
- name: Set clang version to 15 for ubuntu-22.04
if: matrix.os == 'ubuntu-22.04'
run: |
echo "CLANG_VERSION=15" | tee -a $GITHUB_ENV
- name: Install libc++, set CC and CXX env vars
run: |
sudo apt-get install -yqq --no-install-recommends \
libc++-${CLANG_VERSION}-dev \
libc++abi-${CLANG_VERSION}-dev
echo "CC=clang-${CLANG_VERSION}" | tee -a $GITHUB_ENV
echo "CXX=clang++-${CLANG_VERSION}" | tee -a $GITHUB_ENV
- name: Build AppImage
run: ./appimage/build.sh
env:
RELEASE: "${{ startsWith(github.ref, 'refs/tags/') && 'ON' || 'OFF' }}"
- run: ./conky-x86_64.AppImage --version # print version
- name: Set CONKY_VERSION
run: echo "CONKY_VERSION=$(./conky-x86_64.AppImage --short-version)" | tee -a $GITHUB_ENV
- run: mv conky-x86_64.AppImage conky-${{ matrix.os }}-${{ matrix.arch }}-v${{ env.CONKY_VERSION }}.AppImage
- run: mv conky-x86_64.AppImage.sha256 conky-${{ matrix.os }}-${{ matrix.arch }}-v${{ env.CONKY_VERSION }}.AppImage.sha256
- name: Upload AppImage artifact
uses: actions/upload-artifact@v4
with:
path: 'conky-${{ matrix.os }}-${{ matrix.arch }}-v${{ env.CONKY_VERSION }}.AppImage'
name: 'conky-${{ matrix.os }}-${{ matrix.arch }}-v${{ env.CONKY_VERSION }}.AppImage'
if-no-files-found: error
- name: Upload AppImage checksum artifact
uses: actions/upload-artifact@v4
with:
path: 'conky-${{ matrix.os }}-${{ matrix.arch }}-v${{ env.CONKY_VERSION }}.AppImage.sha256'
name: 'conky-${{ matrix.os }}-${{ matrix.arch }}-v${{ env.CONKY_VERSION }}.AppImage.sha256'
if-no-files-found: error
- name: Upload man page artifact
uses: actions/upload-artifact@v4
with:
name: conky.1.gz
path: conky.1.gz
# conky.1.gz is created by all jobs!
overwrite: true
release:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ${{ github.workspace }}/artifacts
- name: Create Conky Release
id: create_release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: false
prerelease: false
discussion_category_name: General
generate_release_notes: true
fail_on_unmatched_files: true
files: |
${{ github.workspace }}/artifacts/**/*

24
.github/workflows/stale.yml vendored Normal file
View file

@ -0,0 +1,24 @@
name: "Close stale issues and PRs"
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
permissions:
contents: write # for delete-branch option
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
stale-issue-message: "This issue is stale because it has been open 365 days with no activity. Remove stale label or comment, or this issue will be closed in 30 days."
stale-pr-message: "This PR is stale because it has been open 365 days with no activity. Remove stale label or comment, or this PR will be closed in 30 days."
close-issue-message: "This issue was closed because it has been stalled for 30 days with no activity."
close-pr-message: "This PR was closed because it has been stalled for 30 days with no activity."
days-before-issue-stale: 365
days-before-pr-stale: 365
days-before-issue-close: 30
days-before-pr-close: 30
delete-branch: true

37
.github/workflows/web.yml vendored Normal file
View file

@ -0,0 +1,37 @@
name: Web CI
on:
push:
branches: [main]
paths:
- web/**
- doc/**
pull_request:
branches: [main]
paths:
- web/**
- doc/**
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18
uses: actions/setup-node@v4
with:
node-version: 18
cache: npm
cache-dependency-path: '**/package-lock.json'
- run: npm ci
working-directory: web
- run: npm run lint
working-directory: web
- run: npm run build --if-present
working-directory: web
- run: npm run e2e:headless
working-directory: web