Giter Site home page Giter Site logo

aur-update-git's Introduction

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 '[email protected]' 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: [email protected]

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

aur-update-git's People

Contributors

thewisker avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.