Skip to content

Release v1.3

Release v1.3 #26

Workflow file for this run

name: Release
run-name: Release ${{ github.ref_name }}
on:
push:
tags:
- 'v\d+\.\d+'
- 'v\d+\.\d+-\d+'
permissions:
contents: write
jobs:
copr_build:
name: Build on copr
runs-on: ubuntu-latest
container: fedora:latest
steps:
- name: Install copr-cli
run: dnf install -y copr-cli
- name: Setup copr-cli
run: |
mkdir -p ~/.config
echo "[copr-cli]" > ~/.config/copr
echo "login = ${{ secrets.COPR_LOGIN }}" >> ~/.config/copr
echo "username = tokox" >> ~/.config/copr
echo "token = ${{ secrets.COPR_TOKEN }}" >> ~/.config/copr
echo "copr_url = https://copr.fedorainfracloud.org" >> ~/.config/copr
- name: Build package
run: |
url="${{ github.repositoryUrl }}"
if [[ $url == git:https://* ]]; then
url="https://${url:6}"
fi
copr-cli buildscm --clone-url "$url" --commit "${{ github.ref_name }}" ${{ github.repository }} --timeout 1800
make_release:
name: Make release
runs-on: ubuntu-latest
container: fedora:latest
needs: [copr_build]
steps:
- name: Install git
run: dnf install -y git && dnf upgrade -y git
- name: Checkout code
uses: actions/[email protected]
- name: Get previous tag
id: get_previous_tag
uses: pozetroninc/[email protected]
with:
repository: ${{ github.repository }}
token: ${{ github.token }}
- name: Move vlatest
uses: rickstaa/[email protected]
with:
tag: vlatest
force_push_tag: true
commit_sha: ${{ github.sha }}
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg_passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Create changelog
run: |
echo "**Changelog**" > changelog.md
sed -n '/%changelog/,$p' cpp-json.spec | tail -n +2 | awk '/\*/{if (found++ == 1) exit} 1' >> changelog.md
echo "**Full Changelog**: https://github.com/tokox/cpp-json/compare/${{ steps.get_previous_tag.outputs.release }}...${{ github.ref_name }}" >> changelog.md
- name: Create release
uses: ncipollo/[email protected]
with:
name: ${{ contains(github.ref_name, '-') && 'Patch' || 'Release'}} ${{ github.ref_name }}
bodyFile: changelog.md
tag: ${{ github.ref_name }}
upload_assets:
name: Upload assets
runs-on: ubuntu-latest
container: fedora:latest
needs: [make_release, copr_build]
steps:
- name: Install copr-cli
run: dnf install -y copr-cli
- name: Setup copr-cli
run: |
mkdir -p ~/.config
echo "[copr-cli]" > ~/.config/copr
echo "login = ${{ secrets.COPR_LOGIN }}" >> ~/.config/copr
echo "username = tokox" >> ~/.config/copr
echo "token = ${{ secrets.COPR_TOKEN }}" >> ~/.config/copr
echo "copr_url = https://copr.fedorainfracloud.org" >> ~/.config/copr
- name: Get copr build id
id: get_copr_build_id
run: echo "id=$(copr-cli list-builds --output-format text-row tokox/cpp-json | grep 'tokox-cpp-json' | grep 'succeeded' | awk '{print $1; exit}')" >> $GITHUB_OUTPUT
- name: Download assets
run: copr-cli download-build --dest assets --rpms ${{ steps.get_copr_build_id.outputs.id }}
- name: Rename assets
run: |
for file in assets/*/*.rpm; do
mv $file assets/$(basename $(dirname $file | sed 's/-x86_64$//'))_$(basename $file)
done
- name: Upload assets
uses: ncipollo/[email protected]
with:
allowUpdates: true
artifactErrorsFailBuild: true
artifacts: assets/*.rpm
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
tag: ${{ github.ref_name }}