Files
package_template/.gitea/workflows/publish.yml

101 lines
3.4 KiB
YAML

name: Publish
on:
push:
branches:
- master
jobs:
check-workflow:
runs-on: ubuntu-latest
name: Check workflow
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Retrieve latest
env:
WORKFLOW_URL: ${{ gitea.server_url }}/${{ gitea.repository }}/raw/branch/master/.gitea/workflows/publish.yml
run: |
echo "Retrieving latest workflow from $WORKFLOW_URL" && \
curl -f -o ".gitea/workflows/publish.yml" "$WORKFLOW_URL"
- name: check for diff
run: git update-index --refresh
build:
needs: check-workflow
runs-on: ubuntu-latest
name: Build and publish
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Parse pkgbase
uses: ${{ gitea.server_url }}/${{ gitea.repository_owner }}/pkgbase-yaml-parser@4a8498f97548b099c71519fb39e839bcd96294d2
id: parsed
with:
previous: ${{ gitea.server_url }}/${{ gitea.repository }}/raw/tag/latest/.artixlinux/pkgbase.yaml
current: .artixlinux/pkgbase.yaml
- name: Move package
uses: ${{ gitea.server_url }}/${{ gitea.repository_owner }}/pkgbase-yaml-parser@4a8498f97548b099c71519fb39e839bcd96294d2
if: ${{ steps.parsed.outputs.move == 'true' }}
with:
mode: move
parsed-data: ${{ steps.parsed.outputs.parsed-data }}
username: "${{ inputs.username }}"
token: ${{ inputs.token }}
- name: Create publish script
shell: bash
if: ${{ steps.parsed.outputs.build == 'true' }}
run: |
echo "#!/bin/bash
echo '📤️ Uploading package to ${{ gitea.server_url }} ...'
for f in ./*.tar.zst; do
[ -f \"\$f\" ] || continue
curl -f --user \"\$username:\$token\" \
--upload-file \"\$f\" \
'${{ gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/arch/${{ steps.parsed.outputs.destination }}'
done
" > "./post-entrypoint.sh"
chmod +x "./post-entrypoint.sh"
git config --global user.name 'Guy Incognito'
git config --global user.email 'user@local'
git add "./post-entrypoint.sh" && \
git commit -m "persist publish script" && \
cat "./post-entrypoint.sh"
- name: Build package
uses: ${{ gitea.server_url }}/${{ gitea.repository_owner }}/build-publish/@build
if: ${{ steps.parsed.outputs.build == 'true' }}
with:
username: "${{ inputs.username }}"
token: ${{ inputs.token }}
- name: Revert publish script
shell: bash
if: ${{ steps.parsed.outputs.build == 'true' }}
run: git reset --hard HEAD~1
- name: Delete package
uses: ${{ gitea.server_url }}/${{ gitea.repository_owner }}/pkgbase-yaml-parser@4a8498f97548b099c71519fb39e839bcd96294d2
if: ${{ steps.parsed.outputs.delete == 'true' }}
with:
mode: delete
parsed-data: ${{ steps.parsed.outputs.parsed-data }}
username: "${{ inputs.username }}"
token: ${{ inputs.token }}
- name: Update latest tag
shell: bash
run: |
git config user.name "Gitea CI"
git config user.email "ci@gitea.local"
git tag -f latest
git push origin -f latest