Files
archbuild/action.yaml
2025-07-10 08:39:42 +08:00

71 lines
2.2 KiB
YAML

---
name: "Arch Build"
description: "Build and push package to MinIO"
author: Yi-Ting Shih <ytshih@it.cs.nycu.edu.tw>
inputs:
context:
description: "The context of the build environment"
required: false
default: .
repo-name:
description: "The repo name to be pushed to"
required: false
default: custom
minio-endpoint:
description: "MinIO endpoint"
required: false
default: http://minio.konchin.com
minio-bucket:
description: "MinIO bucket"
required: false
default: archrepo
minio-accesskey:
description: "MinIO access key"
required: true
minio-secretkey:
description: "MinIO secret key"
required: true
runs:
using: composite
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
- name: Update packages
run: |
sudo pacman -Syu --needed --noconfirm
sudo paccache -r -k 0
- name: Build package
run: |
cd "${{ inputs.context }}"
makepkg -sc --needed --noconfirm
- name: Setup MinIO
run: |
mcli alias set m "${{ inputs.minio-endpoint }}" \
"${{ inputs.minio-accesskey }}" "${{ inputs.minio-secretkey }}"
echo "Set endpoint to ${{ inputs.minio-endpoint }}"
- name: Copy repo db from MinIO
run: |
mkdir repo
mcli cp "m/${{ inputs.minio-bucket }}/${{ inputs.repo-name }}.db" "repo/${{ inputs.repo-name }}.db.tar.zst"
mcli cp "m/${{ inputs.minio-bucket }}/${{ inputs.repo-name }}.files" "repo/${{ inputs.repo-name }}.files.tar.zst"
echo "Copy ${{ inputs.repo-name }}.db and ${{ inputs.repo-name }}.files from MinIO"
- name: Add pkgs to repo db
run: |
repo-add "repo/${{ inputs.repo-name }}.db.tar.zst" *.pkg.tar.zst
mv *.pkg.tar.zst repo
echo "Add $(ls *.pkg.tar.zst) to repo"
- name: Update repo to MinIO
run: |
mcli mv repo/${{ inputs.repo-name }}.db.tar.zst "m/${{ inputs.minio-bucket }}/${{ inputs.repo-name }}.db"
mcli mv repo/${{ inputs.repo-name }}.files.tar.zst "m/${{ inputs.minio-bucket }}/${{ inputs.repo-name }}.files"
mcli mv repo/*.pkg.tar.zst "m/${{ inputs.minio-bucket }}"
echo "Update ${{ inputs.repo-name }}.db adn ${{ inputs.repo-name }}.files to MinIO"