Skip to content

TheWisker/aur-update-git

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

AUR Update Git

Updates AUR git packages on push

Index

Description []

This is a Github Action that updates AUR git packages on push.

Usage []

To use this GitHub Action you need to already have initialized the AUR repository and uploaded a first version. The pkgbase must end in -git for this action to work and to differentiate it from the release action which you can maintain with this action's twin AUR Update.

Once that has been taken care of, you need to create a folder in your GitHub repository were the AUR packages will be stored and updated (by default /aur). Inside said folder, you must create a folder named exactly as the pkgbase for each package you intend to maintain. Then, optionally, fill each package's folder with it's AUR content (PKGBUILD .SRCINFO ...).

After all this preparations have been done it is only left to create the workflow .yml file under .github/workflows/.

The .yml file needs certain fields to have specific values to work. These are:

Permissions to write to the repo

permissions:
  contents: write

Run the job on a priviledged Arch container

On the job element:

runs-on: ubuntu-latest 
container:
  image: archlinux
  options: --privileged

Run on push

on:
  push:
    branches:
      - 'master'

Not really needed but it is intented to work on push

Parameters

Inputs Default Required Description
aur_key no default true AUR ssh private key
ref 'master' false Checkout reference
username ${{ github.actor || 'github-actions-bot'}} false Git username to use
email 'github-actions-bot@noreply.com' false Git email to use
repo ${{ github.repository }} false Repository: user/repo_name
repo_name ${{ github.event.repository.name }} false Repository name
aur_folder ./aur false AUR files folder
commit_hash ${{ github.event.push.after || 'no-hash' }} false Commit hash for commit messages

Examples

Basic

name: AUR Update Git
on:
  push:
    branches:
      - 'master'
permissions:
  contents: write
jobs:
  aur-update-git:
    runs-on: ubuntu-latest 
    container:
      image: archlinux
      options: --privileged
    steps:
      - name: AUR Update Git
        uses: TheWisker/aur-update-git@master
        with:
          aur_key: ${{ secrets.AUR_KEY }}

The most basic workflow file

Advanced

name: AUR Update Git
run-name: AUR package update by ${{ github.actor }} push
on:
  push:
    branches:
      - 'master'
permissions:
  contents: write
concurrency:
  group: "aur"
  cancel-in-progress: false
jobs:
  aur-update-git:
    environment:
      name: aur-packages
    runs-on: ubuntu-latest 
    container:
      image: archlinux
      options: --privileged
    steps:
      - name: AUR Update Git
        uses: TheWisker/aur-update-git@master
        with:
          aur_key: ${{ secrets.AUR_KEY }}
          username: TheWisker
          email: TheWisker@protonmail.com

Specifies a concurrency group so if it is called multiple times at once it is serialized. It also specifies an environment to deploy to so you can, for example, add a delay to said environment so you can cancel the AUR update if there has been a mistake commit. The environment can also be used to only allow access to the AUR_KEY secret to it to minimize security risks.

Discussions []

Feel free to give any ideas for future improvements here and ask any questions you have here.

Support []

If you have got any problems with the action please refer to the SUPPORT.md file.

Contributions []

First and foremost, all contributions are welcome! The steps involved when making a contribution are explained in the CONTRIBUTING.md file. We look forward to your contributions!

  • The contributors list is located here.

Code of Conduct []

This project follows the Contributor Covenant Code of Conduct.

Author []

TheWisker