swayfx/.github/workflows/fedora-copr.yml
2022-11-18 01:20:49 -05:00

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 }}