name: package description: Package module using nfpm inputs: nfpm_file_pattern: description: The pattern of the nfpm configuration file(s) required: true package_extension: description: The package extension (deb or rpm) required: true distrib: description: The package distrib required: true version: description: The package version required: false release: description: The package release number required: false commit_hash: description: The commit hash required: true cache_key: description: The package files cache key required: true rpm_gpg_key: description: The rpm gpg key required: true rpm_gpg_signing_key_id: description: The rpm gpg signing key identifier required: true rpm_gpg_signing_passphrase: description: The rpm gpg signing passphrase required: true stability: description: "The package stability (stable, testing, unstable)" required: true runs: using: composite steps: - name: Import gpg key env: RPM_GPG_SIGNING_KEY: ${{ inputs.rpm_gpg_key }} run: echo -n "$RPM_GPG_SIGNING_KEY" > key.gpg shell: bash - name: Build ${{ inputs.package_extension }} files env: RPM_GPG_SIGNING_KEY_ID: ${{ inputs.rpm_gpg_signing_key_id }} RPM_GPG_SIGNING_PASSPHRASE: ${{ inputs.rpm_gpg_signing_passphrase }} run: | export VERSION="${{ inputs.version }}" export RELEASE="${{ inputs.release }}" if [ "${{ inputs.package_extension }}" = "rpm" ]; then export DIST=".${{ inputs.distrib }}" else if [ "${{ inputs.stability }}" = "unstable" ] || [ "${{ inputs.stability }}" = "canary" ]; then export RELEASE="$RELEASE-${{ inputs.distrib }}" elif [ "${{ inputs.stability }}" = "testing" ]; then export RELEASE="${{ inputs.distrib }}" fi export DIST="" fi export RPM_SIGNING_KEY_FILE="$(pwd)/key.gpg" export RPM_SIGNING_KEY_ID="$RPM_GPG_SIGNING_KEY_ID" export NFPM_RPM_PASSPHRASE="$RPM_GPG_SIGNING_PASSPHRASE" for FILE in ${{ inputs.nfpm_file_pattern }}; do DIRNAME=$(dirname $FILE) BASENAME=$(basename $FILE) cd $DIRNAME if [ -f $DIRNAME/env/.env.${{ inputs.distrib }} ]; then source $DIRNAME/env/.env.${{ inputs.distrib }} fi sed -i "s/@COMMIT_HASH@/${{ inputs.commit_hash }}/g" $BASENAME nfpm package --config $BASENAME --packager ${{ inputs.package_extension }} cd - mv $DIRNAME/*.${{ inputs.package_extension }} ./ done shell: bash - name: Upload package artifacts uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: packages-${{ inputs.distrib }} path: ./*.${{ inputs.package_extension }} retention-days: 1 - name: Cache packages uses: actions/cache/save@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2 with: path: ./*.${{ inputs.package_extension }} key: ${{ inputs.cache_key }}