87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
name: Package for Fedora Copr repo
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
fedora-copr:
|
|
container: fedora:latest
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Install API token for copr-cli
|
|
env:
|
|
# To generate a new token: https://copr.fedorainfracloud.org/api/.
|
|
API_LOGIN: ${{ secrets.COPR_API_LOGIN }}
|
|
API_USERNAME: ${{ secrets.COPR_API_USERNAME }}
|
|
API_TOKEN_CONTENT: ${{ secrets.COPR_API_TOKEN }}
|
|
run: |
|
|
mkdir -p "$HOME/.config"
|
|
# To generate a new token: https://copr.fedorainfracloud.org/api/.
|
|
echo "[copr-cli]" >> "$HOME/.config/copr"
|
|
echo "login = $API_LOGIN" >> "$HOME/.config/copr"
|
|
echo "username = $API_USERNAME" >> "$HOME/.config/copr"
|
|
echo "token = $API_TOKEN_CONTENT" >> "$HOME/.config/copr"
|
|
echo "copr_url = https://copr.fedorainfracloud.org" >> "$HOME/.config/copr"
|
|
|
|
- name: Install tooling for source RPM build
|
|
run: |
|
|
dnf -y install @development-tools @rpm-development-tools copr-cli rpkg git 'dnf-command(builddep)'
|
|
|
|
# It is necessary to checkout into sub-directory, because of some weird ownership problems cause by using containers
|
|
- name: Check out sources
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
path: swayfx
|
|
|
|
- name: Check out the latest tag
|
|
run: |
|
|
cp ./swayfx/build-scripts/swayfx.rpkg.spec ./
|
|
cd swayfx
|
|
git stash save "Action stashing changes"
|
|
latestTag=$(git describe --abbrev=0 --tags)
|
|
git checkout $latestTag
|
|
|
|
- name: Copy master spec into root dir
|
|
run: |
|
|
cd swayfx
|
|
cp ../swayfx.rpkg.spec ./
|
|
|
|
- name: Generate spec
|
|
run: |
|
|
cd swayfx
|
|
mkdir specs
|
|
rpkg spec --source --outdir specs
|
|
|
|
- name: Install build dependencies
|
|
run: |
|
|
cd swayfx
|
|
dnf -y builddep ./specs/swayfx.rpkg.spec
|
|
|
|
- name: Local build
|
|
run: |
|
|
cd swayfx
|
|
mkdir -p out
|
|
rpkg local --out `pwd`/out
|
|
|
|
- name: Test if installation of package is successful
|
|
run: |
|
|
cd swayfx/out
|
|
|
|
packages=(`rpmspec -q --nodebuginfo --qf \
|
|
"./%{ARCH}/%{Name}-%{Version}-%{Release}.%{ARCH}.rpm\n" \
|
|
../specs/swayfx.rpkg.spec`)
|
|
for i in "${packages[@]}"; do
|
|
dnf -y install "$i"
|
|
done
|
|
|
|
- name: Submit the build to copr
|
|
run: |
|
|
cd swayfx
|
|
rpkg -v copr-build -w ${{ secrets.COPR_REPO_NAME }}
|