73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
name: Build
|
|
on: [push]
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build_arch:
|
|
runs-on: archlinux
|
|
steps:
|
|
|
|
- name: Checkout Current Repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Clone External Repository
|
|
run: |
|
|
git clone https://git.elordenador.org/RedSocial/cli_archpkg.git external
|
|
chown -R builder:builder external
|
|
- name: Makepkg
|
|
run: |
|
|
cd external && makepkg -s --noconfirm
|
|
- name: Extract package version
|
|
id: pkg_version
|
|
run: |
|
|
PKGFILE=$(ls external/*.pkg.tar.zst)
|
|
PKGVERSION=$(basename "$PKGFILE" | sed 's/^rscli-git-\(r[^ ]*\)-.*$/\1/')
|
|
echo "PKGVERSION=$PKGVERSION" >> $GITHUB_ENV
|
|
echo "version=$PKGVERSION" >> $GITHUB_OUTPUT
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: arch-package
|
|
path: external/*.pkg.tar.zst
|
|
publish-release:
|
|
runs-on: ubuntu-26.04
|
|
needs: build_arch
|
|
steps:
|
|
- name: Checkout Current Repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download Artifact
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: arch-package
|
|
path: ./dist
|
|
- name: Create Git Tag
|
|
run: |
|
|
VERSION=$(ls dist/*.pkg.tar.zst | sed 's/^rscli-git-\(r[^ ]*\)-.*$/\1/')
|
|
git tag "$VERSION"
|
|
git push origin "$VERSION"
|
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
- name: Create Gitea Release
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TAG: ${{ env.VERSION }}
|
|
run: |
|
|
PACKAGE_FILE=$(ls dist/*.pkg.tar.zst)
|
|
FILE_NAME=$(basename "$PACKAGE_FILE")
|
|
RELEASE_JSON=$(curl -s -X POST "https://git.elordenador.org/api/v1/repos/RedSocial/cli/releases" \
|
|
-H "Authorization: token $GITEA_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"tag_name\": \"$TAG\",
|
|
\"name\": \"Release $TAG\",
|
|
\"draft\": false,
|
|
\"prerelease\": false
|
|
}")
|
|
RELEASE_ID=$(echo "$RELEASE_JSON" | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2)
|
|
curl -X POST "https://git.elordenador.org/api/v1/repos/RedSocial/cli/releases/$RELEASE_ID/assets?name=$FILE_NAME" \
|
|
-H "Authorization: token $GITEA_TOKEN" \
|
|
--data-binary "@$PACKAGE_FILE"
|
|
|