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