Release v1.2 #21
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
run-name: Release ${{ github.ref_name }} | |
on: | |
push: | |
tags: | |
- 'v\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://* ]]; 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 to ${{ github.ref_name }} | |
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 from spec file | |
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: Release ${{ github.ref_name }} | |
bodyFile: changelog.md | |
tag: ${{ github.ref_name }} | |
upload_assets: | |
name: Upload assets to release from copr | |
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 }} |