Skip to content

Bump version to 1.5.19 #56

Bump version to 1.5.19

Bump version to 1.5.19 #56

Workflow file for this run

name: Release
on:
push:
tags:
- "v*"
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Create Release Directory
run: mkdir -p release
- name: Copy srcenv
run: cp srcenv release
- name: Build AUR Package
uses: docker://archlinux:latest
with:
entrypoint: /usr/bin/bash
args: |
-c "cd /github/workspace
pacman -Syu --noconfirm --needed base base-devel devtools
useradd -d /home/makepkg makepkg
mkdir -p /home/makepkg/
chown -R makepkg:users /home/makepkg
echo \"makepkg ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/makepkg
mkdir -p aurbuild
chown -R makepkg:users aurbuild
TAG=${GITHUB_REF#refs/tags/}
URL=\"https://github.com/ins0mniaque/srcenv/archive/refs/tags/$TAG.tar.gz\"
VERSION=${TAG#v}
curl -Ls \"$URL\" -o \"aurbuild/srcenv-$VERSION.tar.gz\"
SHA256=$(sha256sum \"aurbuild/srcenv-$VERSION.tar.gz\" | cut -c1-64)
(
echo '# Maintainer: Jean-Philippe Leconte <ins0mniaque@gmail.com>'
echo
echo 'pkgname=srcenv'
echo 'pkgver='$VERSION
echo 'pkgrel=1'
echo \"pkgdesc='A cross-shell tool for sourcing POSIX compliant .env scripts'\"
echo \"arch=('any')\"
echo \"url='https://github.com/ins0mniaque/srcenv'\"
echo \"license=('MIT')\"
echo \"source=('$URL')\"
echo \"sha256sums=('$SHA256')\"
echo \"depends=('jq')\"
echo
echo 'package() {'
echo ' install -D -m755 \"$srcdir/$pkgname-$pkgver/srcenv\" \"$pkgdir/usr/bin/srcenv\"'
echo ' install -D -m644 \"$srcdir/$pkgname-$pkgver/srcenv.1\" \"$pkgdir/usr/share/man/man1/srcenv.1\"'
echo ' install -D -m644 \"$srcdir/$pkgname-$pkgver/LICENSE\" \"$pkgdir/usr/share/licenses/$pkgname/LICENSE\"'
echo '}'
) | tee aurbuild/PKGBUILD
cd aurbuild
sudo -u makepkg makepkg --noconfirm -sf
sudo -u makepkg makepkg --printsrcinfo > .SRCINFO
cd ..
cp \"aurbuild/srcenv-$VERSION-1-any.pkg.tar.zst\" release"
- name: Build DEB Package
run: |
mkdir -p debbuild/DEBIAN
TAG=${GITHUB_REF#refs/tags/}
VERSION=${TAG#v}
cp srcenv debbuild
cp srcenv.1 debbuild
(
echo 'Package: srcenv'
echo 'Version: '$VERSION'-1'
echo 'Section: utils'
echo 'Priority: optional'
echo 'Architecture: all'
echo 'Depends: jq'
echo 'Maintainer: Jean-Philippe Leconte <ins0mniaque@gmail.com>'
echo 'Description: A cross-shell tool for sourcing POSIX compliant .env scripts'
echo 'Homepage: https://github.com/ins0mniaque/srcenv'
) | tee debbuild/DEBIAN/control
(
echo 'Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/'
echo 'Upstream-Name: srcenv'
echo 'Upstream-Contact: https://github.com/ins0mniaque/srcenv/issues'
echo 'Source: https://github.com/ins0mniaque/srcenv'
echo
echo 'Files: *'
echo 'Copyright: 2024 Jean-Philippe Leconte'
echo 'License: MIT'
echo
echo 'License: MIT'
sed 's/^/ /' LICENSE
) | tee debbuild/DEBIAN/copyright
dpkg-deb --build debbuild "release/srcenv_${VERSION}-1_all.deb"
- name: Build RPM Package
run: |
mkdir -p rpmbuild/BUILD
mkdir -p rpmbuild/BUILDROOT
mkdir -p rpmbuild/RPMS
mkdir -p rpmbuild/SOURCES
mkdir -p rpmbuild/SPECS
mkdir -p rpmbuild/SRPMS
TAG=${GITHUB_REF#refs/tags/}
URL="https://github.com/ins0mniaque/srcenv/archive/refs/tags/$TAG.tar.gz"
VERSION=${TAG#v}
curl -Ls "$URL" -o "rpmbuild/SOURCES/srcenv-$VERSION.tar.gz"
(
echo 'Name: srcenv'
echo 'Version: '$VERSION
echo 'Release: 1%{?dist}'
echo 'Summary: A cross-shell tool for sourcing POSIX compliant .env scripts'
echo 'BuildArch: noarch'
echo 'Requires: jq'
echo
echo 'License: MIT'
echo 'Source0: %{name}-%{version}.tar.gz'
echo
echo '%description'
echo 'A cross-shell tool for sourcing POSIX compliant .env scripts'
echo
echo '%prep'
echo '%setup -q'
echo
echo '%install'
echo 'rm -rf $RPM_BUILD_ROOT'
echo 'mkdir -p $RPM_BUILD_ROOT%{_bindir}'
echo 'mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1'
echo 'cp %{name} $RPM_BUILD_ROOT%{_bindir}'
echo 'cp %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1'
echo
echo '%clean'
echo 'rm -rf $RPM_BUILD_ROOT'
echo
echo '%files'
echo '%{_bindir}/%{name}'
echo '%{_mandir}/man1/%{name}.1.gz'
) | tee rpmbuild/SPECS/srcenv.spec
rpmbuild --define "_topdir $PWD/rpmbuild" -ba rpmbuild/SPECS/srcenv.spec
cp "rpmbuild/RPMS/noarch/srcenv-$VERSION-1.noarch.rpm" release
- name: Generate Checksum File
run: |
cd release
sha256sum * | tee SHA256SUMS
- name: Create Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create --generate-notes "${GITHUB_REF#refs/tags/}" release/*
- name: Checkout Homebrew Formula
uses: actions/checkout@v4
with:
repository: ins0mniaque/homebrew-srcenv
token: ${{ secrets.HOMEBREW_TOKEN }}
path: homebrew-srcenv
persist-credentials: true
- name: Update Homebrew Formula
run: |
TAG=${GITHUB_REF#refs/tags/}
URL="https://github.com/ins0mniaque/srcenv/archive/refs/tags/$TAG.tar.gz"
SHA256=$(curl -Ls "$URL" | shasum -a 256 | cut -c1-64)
VERSION=${TAG#v}
cd homebrew-srcenv
(
echo 'class Srcenv < Formula'
echo ' desc "Cross-shell tool for sourcing POSIX compliant .env scripts"'
echo ' homepage "https://github.com/ins0mniaque/srcenv"'
echo ' url "'$URL'"'
echo ' version "'$VERSION'"'
echo ' sha256 "'$SHA256'"'
echo ' license "MIT"'
echo
echo ' depends_on "jq"'
echo
echo ' def install'
echo ' bin.install "srcenv"'
echo ' man1.install "srcenv.1"'
echo ' end'
echo
echo ' test do'
echo ' expected_version = "srcenv #{version}"'
echo ' actual_version = shell_output("#{bin}/srcenv --version").strip'
echo ' assert_match expected_version, actual_version'
echo ' end'
echo 'end'
) | tee Formula/srcenv.rb
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com"
git add Formula/srcenv.rb
git commit -m "Bump srcenv to $VERSION"
git push