Skip to content

2

2 #256

Workflow file for this run

{
"name": "CI",
"on": {
"push": {
"tags": [
"**",
],
"branches": [
"**",
],
},
},
"env": {
"NAME": "iptsd",
"SCRIPTS": "./.github/scripts",
"BRANCH_STAGING": "u/staging",
},
"jobs": {
"check": {
"name": "Check code quality",
"container": "fedora:40",
"runs-on": "ubuntu-latest",
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Install build dependencies",
"run": "bash $SCRIPTS/pkg-fedora.sh install && dnf install -y clang clang-tools-extra",
},
{
"name": "Setup meson",
"env": {
"CC": "clang",
"CXX": "clang++",
},
"run": "meson setup build",
},
],
},
"build-arch": {
"name": "Build Arch Linux Package",
"container": "archlinux/archlinux",
"runs-on": "ubuntu-latest",
"needs": [
"check",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Install build dependencies",
"run": "bash $SCRIPTS/pkg-arch.sh install",
},
{
"name": "Build package",
"run": "bash $SCRIPTS/pkg-arch.sh build",
},
{
"name": "Sign package",
"env": {
"GPG_KEY_ID": "56C464BAAC421453",
"GPG_KEY": "${{ secrets.LINUX_SURFACE_GPG_KEY }}",
},
"run": "bash $SCRIPTS/pkg-arch.sh sign",
},
{
"name": "Prepare release",
"run": "bash $SCRIPTS/pkg-arch.sh release",
},
{
"name": "Upload artifacts",
"uses": "actions/upload-artifact@v4",
"with": {
"name": "arch-latest",
"path": "release",
},
},
],
},
"build-deb": {
"name": "Build Debian Package",
"container": "debian:bullseye",
"runs-on": "ubuntu-latest",
"needs": [
"check",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Install build dependencies",
"run": "bash $SCRIPTS/pkg-debian.sh install",
},
{
"name": "Build package",
"run": "bash $SCRIPTS/pkg-debian.sh build",
},
{
"name": "Sign package",
"env": {
"GPG_KEY_ID": "56C464BAAC421453",
"GPG_KEY": "${{ secrets.LINUX_SURFACE_GPG_KEY }}",
},
"run": "bash $SCRIPTS/pkg-debian.sh sign",
},
{
"name": "Prepare release",
"run": "bash $SCRIPTS/pkg-debian.sh release",
},
{
"name": "Upload artifacts",
"uses": "actions/upload-artifact@v4",
"with": {
"name": "debian-latest",
"path": "release",
},
},
],
},
"build-f39": {
"name": "Build Fedora 39 package",
"container": "fedora:39",
"runs-on": "ubuntu-latest",
"needs": [
"check",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Install build dependencies",
"run": "dnf -y install tree && tree -a .",
},
{
"name": "Install build dependencies",
"run": "bash $SCRIPTS/pkg-fedora.sh install",
},
{
"name": "Build package",
"run": "bash $SCRIPTS/pkg-fedora.sh build",
},
{
"name": "Sign package",
"env": {
"GPG_KEY_ID": "56C464BAAC421453",
"GPG_KEY": "${{ secrets.LINUX_SURFACE_GPG_KEY }}",
},
"run": "bash $SCRIPTS/pkg-fedora.sh sign",
},
{
"name": "Prepare release",
"run": "bash $SCRIPTS/pkg-fedora.sh release",
},
{
"name": "Upload artifacts",
"uses": "actions/upload-artifact@v4",
"with": {
"name": "fedora-39-latest",
"path": "release",
},
},
],
},
"build-f40": {
"name": "Build Fedora 40 package",
"container": "fedora:40",
"runs-on": "ubuntu-latest",
"needs": [
"check",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Install build dependencies",
"run": "bash $SCRIPTS/pkg-fedora.sh install",
},
{
"name": "Build package",
"run": "bash $SCRIPTS/pkg-fedora.sh build",
},
{
"name": "Sign package",
"env": {
"GPG_KEY_ID": "56C464BAAC421453",
"GPG_KEY": "${{ secrets.LINUX_SURFACE_GPG_KEY }}",
},
"run": "bash $SCRIPTS/pkg-fedora.sh sign",
},
{
"name": "Prepare release",
"run": "bash $SCRIPTS/pkg-fedora.sh release",
},
{
"name": "Upload artifacts",
"uses": "actions/upload-artifact@v4",
"with": {
"name": "fedora-40-latest",
"path": "release",
},
},
],
},
"build-f41": {
"name": "Build Fedora 41 package",
"container": "fedora:41",
"runs-on": "ubuntu-latest",
"needs": [
"check",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Install build dependencies",
"run": "bash $SCRIPTS/pkg-fedora.sh install",
},
{
"name": "Build package",
"run": "bash $SCRIPTS/pkg-fedora.sh build",
},
{
"name": "Sign package",
"env": {
"GPG_KEY_ID": "56C464BAAC421453",
"GPG_KEY": "${{ secrets.LINUX_SURFACE_GPG_KEY }}",
},
"run": "bash $SCRIPTS/pkg-fedora.sh sign",
},
{
"name": "Prepare release",
"run": "bash $SCRIPTS/pkg-fedora.sh release",
},
{
"name": "Upload artifacts",
"uses": "actions/upload-artifact@v4",
"with": {
"name": "fedora-41-latest",
"path": "release",
},
},
],
},
"release": {
"name": "Publish release",
"if": "github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/')",
"needs": [
"build-arch",
"build-deb",
"build-f39",
"build-f40",
"build-f41",
],
"runs-on": "ubuntu-latest",
"steps": [
{
"name": "Download Arch Linux artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "arch-latest",
"path": "arch-latest",
},
},
{
"name": "Download Debian artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "debian-latest",
"path": "debian-latest",
},
},
{
"name": "Download Fedora 39 artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "fedora-39-latest",
"path": "fedora-39-latest",
},
},
{
"name": "Download Fedora 40 artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "fedora-40-latest",
"path": "fedora-40-latest",
},
},
{
"name": "Download Fedora 41 artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "fedora-41-latest",
"path": "fedora-41-latest",
},
},
{
"name": "Upload assets",
"uses": "svenstaro/upload-release-action@v2",
"with": {
"repo_token": " ${{ secrets.GITHUB_TOKEN }}",
"file": "./*-latest/*",
"tag": "${{ github.ref }}",
"overwrite": true,
"file_glob": true,
},
},
],
},
"repo-arch": {
"name": "Update Arch Linux package repository",
"container": "archlinux/archlinux",
"runs-on": "ubuntu-latest",
"needs": [
"release",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Download artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "arch-latest",
"path": "arch-latest",
},
},
{
"name": "Update repository",
"env": {
"SURFACEBOT_TOKEN": "${{ secrets.LINUX_SURFACE_BOT_TOKEN }}",
"GIT_REF": "${{ github.ref }}",
},
"run": "bash $SCRIPTS/repo-arch.sh $NAME",
},
],
},
"repo-deb": {
"name": "Update Debian package repository",
"container": "debian:bullseye",
"runs-on": "ubuntu-latest",
"needs": [
"release",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Download artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "debian-latest",
"path": "debian-latest",
},
},
{
"name": "Update repository",
"env": {
"SURFACEBOT_TOKEN": "${{ secrets.LINUX_SURFACE_BOT_TOKEN }}",
"GIT_REF": "${{ github.ref }}",
},
"run": "bash $SCRIPTS/repo-debian.sh $NAME",
},
],
},
"repo-f39": {
"name": "Update Fedora 39 package repository",
"container": "fedora:39",
"runs-on": "ubuntu-latest",
"needs": [
"release",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Download artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "fedora-39-latest",
"path": "fedora-39-latest",
},
},
{
"name": "Update repository",
"env": {
"SURFACEBOT_TOKEN": "${{ secrets.LINUX_SURFACE_BOT_TOKEN }}",
"GIT_REF": "${{ github.ref }}",
},
"run": "bash $SCRIPTS/repo-fedora.sh $NAME 39",
},
],
},
"repo-f40": {
"name": "Update Fedora 40 package repository",
"container": "fedora:40",
"runs-on": "ubuntu-latest",
"needs": [
"release",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Download artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "fedora-40-latest",
"path": "fedora-40-latest",
},
},
{
"name": "Update repository",
"env": {
"SURFACEBOT_TOKEN": "${{ secrets.LINUX_SURFACE_BOT_TOKEN }}",
"GIT_REF": "${{ github.ref }}",
},
"run": "bash $SCRIPTS/repo-fedora.sh $NAME 40",
},
],
},
"repo-f41": {
"name": "Update Fedora 41 package repository",
"container": "fedora:41",
"runs-on": "ubuntu-latest",
"needs": [
"release",
],
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4",
"with": {
"fetch-depth": 0,
},
},
{
"name": "Download artifacts",
"uses": "actions/download-artifact@v4",
"with": {
"name": "fedora-41-latest",
"path": "fedora-41-latest",
},
},
{
"name": "Update repository",
"env": {
"SURFACEBOT_TOKEN": "${{ secrets.LINUX_SURFACE_BOT_TOKEN }}",
"GIT_REF": "${{ github.ref }}",
},
"run": "bash $SCRIPTS/repo-fedora.sh $NAME 41",
},
],
},
},
}