2 #256
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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", | |
}, | |
], | |
}, | |
}, | |
} |