diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..2dde93b --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,61 @@ +name: Release + +on: + push: + tags: + - 'v*' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install system dependencies + run: | + sudo apt-get update -q + sudo apt-get install -y \ + libgtk-3-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev \ + gstreamer1.0-plugins-good \ + libpam0g-dev \ + ninja-build \ + python3-pip \ + libglib2.0-dev + pip3 install meson + + - name: Install Rust stable + uses: dtolnay/rust-toolchain@stable + + - name: Build release + run: | + meson setup builddir --buildtype=release + meson compile -C builddir + + - name: Bundle artifacts + run: | + mkdir -p dist + cp builddir/ahfail-module.so dist/ + cp builddir/libahfail_pam.so dist/ + cp builddir/ahfail-display dist/ + tar czf ahfail-linux-x86_64.tar.gz -C dist . + + - name: Create Gitea release and upload asset + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + GITEA_URL: https://gitea.weircon.dk + REPO: agw/gtk-ahfail + TAG: ${{ github.ref_name }} + run: | + RELEASE_ID=$(curl -s -X POST \ + "${GITEA_URL}/api/v1/repos/${REPO}/releases" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{\"tag_name\":\"${TAG}\",\"name\":\"${TAG}\",\"draft\":false}" \ + | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") + + curl -s -X POST \ + "${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -F "attachment=@ahfail-linux-x86_64.tar.gz" diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml new file mode 100644 index 0000000..b9345b0 --- /dev/null +++ b/.gitea/workflows/test.yml @@ -0,0 +1,39 @@ +name: Test + +on: + push: + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install system dependencies + run: | + sudo apt-get update -q + sudo apt-get install -y \ + libgtk-3-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev \ + gstreamer1.0-plugins-good \ + libpam0g-dev \ + ninja-build \ + python3-pip \ + libglib2.0-dev + pip3 install meson + + - name: Install Rust stable + uses: dtolnay/rust-toolchain@stable + + - name: Run Rust tests + run: cargo test + + - name: Meson build + run: | + meson setup builddir + meson compile -C builddir + + - name: Meson tests + run: meson test -C builddir --verbose