ci(copr): use copr-ci workflow (#3276)
This commit is contained in:
52
.github/workflows/ci-copr.yml
vendored
52
.github/workflows/ci-copr.yml
vendored
@@ -13,49 +13,21 @@ on:
|
|||||||
types:
|
types:
|
||||||
- prereleased
|
- prereleased
|
||||||
- released
|
- released
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: "${{ github.workflow }}-${{ github.ref }}"
|
group: "${{ github.workflow }}-${{ github.ref }}"
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
call-copr-ci:
|
||||||
name: Copr build
|
uses: LizardByte/copr-ci/.github/workflows/copr-ci.yml@master
|
||||||
if: github.repository_owner == 'LizardByte'
|
with:
|
||||||
runs-on: ubuntu-latest
|
copr_pr_webhook_token: "05fc9b07-a19b-4f83-89b2-ae1e7e0b5282"
|
||||||
steps:
|
github_org_owner: LizardByte
|
||||||
- name: Checkout
|
copr_ownername: lizardbyte
|
||||||
uses: actions/checkout@v4
|
auto_update_package: true
|
||||||
|
job_timeout: 60
|
||||||
- name: Get properties
|
secrets:
|
||||||
env:
|
COPR_BETA_WEBHOOK_TOKEN: ${{ secrets.COPR_BETA_WEBHOOK_TOKEN }}
|
||||||
COPR_PR_WH_KEY: "05fc9b07-a19b-4f83-89b2-ae1e7e0b5282"
|
COPR_STABLE_WEBHOOK_TOKEN: ${{ secrets.COPR_STABLE_WEBHOOK_TOKEN }}
|
||||||
run: |
|
COPR_CLI_CONFIG: ${{ secrets.COPR_CLI_CONFIG }}
|
||||||
# package name = repository name
|
|
||||||
package=${{ github.event.repository.name }}
|
|
||||||
copr_base="https://copr.fedorainfracloud.org/webhooks/custom-dir/lizardbyte"
|
|
||||||
|
|
||||||
# release and released type
|
|
||||||
if [ "${{ github.event_name }}" = "release" ]; then
|
|
||||||
if [ "${{ github.event.action }}" = "prereleased" ]; then
|
|
||||||
COPR_PUSH_WEBHOOK="${copr_base}/beta/${{ secrets.COPR_BETA_WEBHOOK_TOKEN }}/${package}/"
|
|
||||||
elif [ "${{ github.event.action }}" = "released" ]; then
|
|
||||||
COPR_PUSH_WEBHOOK="${copr_base}/stable/${{ secrets.COPR_STABLE_WEBHOOK_TOKEN }}/${package}/"
|
|
||||||
fi
|
|
||||||
elif [ "${{ github.event_name }}" = "pull_request" ]; then
|
|
||||||
COPR_PR_WEBHOOK="${copr_base}/pulls:pr:${{github.event.number}}/${{env.COPR_PR_WH_KEY}}/${package}/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "COPR_PUSH_WEBHOOK=${COPR_PUSH_WEBHOOK}" >> $GITHUB_ENV
|
|
||||||
echo "COPR_PR_WEBHOOK=${COPR_PR_WEBHOOK}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
echo "COPR_PUSH_WEBHOOK=${COPR_PUSH_WEBHOOK}"
|
|
||||||
echo "COPR_PR_WEBHOOK=${COPR_PR_WEBHOOK}"
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
curl https://raw.githubusercontent.com/praiskup/copr-ci-tooling/main/copr-gh-actions-submit > submit
|
|
||||||
|
|
||||||
# if a PR number is added the script will use the PR webhook, otherwise it will use the push webhook
|
|
||||||
bash submit ${{ github.event.pull_request.number }}
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
Name: Sunshine
|
Name: Sunshine
|
||||||
Version: %{build_version}
|
Version: %{build_version}
|
||||||
Summary: Self-hosted game stream host for Moonlight.
|
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
|
Summary: Self-hosted game stream host for Moonlight.
|
||||||
License: GPLv3-only
|
License: GPLv3-only
|
||||||
URL: https://github.com/LizardByte/Sunshine
|
URL: https://github.com/LizardByte/Sunshine
|
||||||
Source0: tarball.tar.gz
|
Source0: tarball.tar.gz
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
#! /bin/sh -x
|
|
||||||
|
|
||||||
# This file is not used directly in this repository. It should be uploaded to Copr whenever the file changes.
|
|
||||||
# Replicate to each package in "pulls", "beta", and "stable" Copr repositories
|
|
||||||
|
|
||||||
set -e
|
|
||||||
resultdir="${COPR_RESULTDIR}"
|
|
||||||
git clone "https://github.com/${COPR_OWNER}/${COPR_PACKAGE}.git" --depth 1
|
|
||||||
cd "${COPR_PACKAGE}"
|
|
||||||
|
|
||||||
# optional part; drop if building against 'master' is enough
|
|
||||||
if test -z "$REVISION"; then
|
|
||||||
# the hook_payload file contains webhook JSON payload (copr creates it for
|
|
||||||
# us); it is created only if the build is triggered by Custom webhook.
|
|
||||||
if test -f "$resultdir"/hook_payload; then
|
|
||||||
git clone https://github.com/praiskup/copr-ci-tooling \
|
|
||||||
"$resultdir/cct" --depth 1
|
|
||||||
export PATH="$resultdir/cct:$PATH"
|
|
||||||
|
|
||||||
echo "---"
|
|
||||||
cat "$resultdir"/hook_payload
|
|
||||||
echo "---"
|
|
||||||
|
|
||||||
# use jq to get the pr_id from the hook_payload
|
|
||||||
PR=$(jq -r '.pr_id' "$resultdir"/hook_payload)
|
|
||||||
if [ -z "$PR" ]; then
|
|
||||||
BRANCH="master"
|
|
||||||
else
|
|
||||||
BRANCH="pr/${PR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
copr-travis-checkout "$resultdir"/hook_payload
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
git checkout "$REVISION"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# initialize the submodules
|
|
||||||
git submodule update --init --recursive
|
|
||||||
|
|
||||||
# get the tag of this commit IF it has one
|
|
||||||
TAG=$(git tag --points-at HEAD | head -n1)
|
|
||||||
if [ -z "$TAG" ]; then
|
|
||||||
TAG="0.0.$PR"
|
|
||||||
fi
|
|
||||||
TAG=$(echo "$TAG" | sed 's/^v//') # remove v prefix from the tag
|
|
||||||
echo "TAG=$TAG"
|
|
||||||
|
|
||||||
# get the commit
|
|
||||||
COMMIT=$(git rev-parse HEAD)
|
|
||||||
echo "COMMIT=$COMMIT"
|
|
||||||
|
|
||||||
# move spec file to the correct location
|
|
||||||
mv packaging/linux/fedora/*.spec "${resultdir}"
|
|
||||||
|
|
||||||
# use sed to replace these values in the spec file
|
|
||||||
sed -i "s|%global build_version 0|%global build_version ${TAG}|" "${resultdir}"/*.spec
|
|
||||||
sed -i "s|%global branch 0|%global branch ${BRANCH}|" "${resultdir}"/*.spec
|
|
||||||
sed -i "s|%global commit 0|%global commit ${COMMIT}|" "${resultdir}"/*.spec
|
|
||||||
|
|
||||||
# create a tarball of the source code
|
|
||||||
tar -czf "${resultdir}/tarball.tar.gz" .
|
|
||||||
Reference in New Issue
Block a user