name: Build and Upload RPM description: "Builds rpm for given spec file and uploads to hydrosaber gitea repository." inputs: spec-file-path: description: "Path to spec file for rpm" required: true package-group: description: "Group repository to upload package to" default: "f43" repository-url: description: "Gitea repository to upload package to" default: "https://git.hydrosaber.com" repository-user: description: "User in repository to upload as" required: true repository-user-token: description: "Token to use with user" required: true runs: using: "composite" steps: - name: Setup workspace shell: bash env: SPEC_FILE_PATH: ${{ inputs.spec-file-path }} run: | mkdir -p ./rpmbuild/{RPMS,SPECS} cp ${SPEC_FILE_PATH} ./rpmbuild/SPECS - name: Build RPM shell: bash env: SPEC_FILE_PATH: ${{ inputs.spec-file-path }} ACTION_ROOT: ${{ gitea.action_path }} run: | SPEC_FILE_NAME=$(basename ${SPEC_FILE_PATH}) podman run --rm \ -v ./rpmbuild:/root/rpmbuild:rw,z \ -v ${ACTION_ROOT}/entrypoint.sh:/root/entrypoint.sh:ro,z \ -w /root \ fedora:latest \ /root/entrypoint.sh /root/rpmbuild/SPECS/${SPEC_FILE_NAME} - name: Upload package shell: bash env: SPEC_FILE_PATH: ${{ inputs.spec-file-path }} REPOSITORY_URL: ${{ inputs.repository-url }} PACKAGE_GROUP: ${{ inputs.package-group }} REPOSITORY_OWNER: ${{ gitea.repository_owner }} UPLOAD_USER: ${{ inputs.repository-user }} UPLOAD_USER_TOKEN: ${{ inputs.repository-user-token }} run: | PACKAGE_NAME=$(basename -s .spec ${SPEC_FILE_PATH}) echo "Goal package to upload: ${PACKAGE_NAME}" RPM_PATH="./rpmbuild/RPMS/x86_64" echo "Searching in ${RPM_PATH}" ls ${RPM_PATH} UPLOAD_URL="${REPOSITORY_URL}/api/packages/${REPOSITORY_OWNER}/rpm/${PACKAGE_GROUP}/upload" echo "Uploading to url: ${UPLOAD_URL}" REGULAR_PACKAGE=$(find ${RPM_PATH} -maxdepth 1 -type f \( -name "${PACKAGE_NAME}*\.rpm" -a ! -name "*-devel*\.rpm" \) | head -1) DEVEL_PACKAGE=$(find ${RPM_PATH} -maxdepth 1 -type f -name "${PACKAGE_NAME}-devel*\.rpm" | head -1) if [[ -n "$REGULAR_PACKAGE" ]]; then echo "Found regular package at ${REGULAR_PACKAGE}, uploading it." curl --user ${UPLOAD_USER}:${UPLOAD_USER_TOKEN} \ --upload-file ${REGULAR_PACKAGE} \ ${UPLOAD_URL} else echo "No regular package found, skipping..." fi if [[ -n "$DEVEL_PACKAGE" ]]; then echo "Found devel package at ${DEVEL_PACKAGE}, uploading it." curl --user ${UPLOAD_USER}:${UPLOAD_USER_TOKEN} \ --upload-file ${DEVEL_PACKAGE} \ ${UPLOAD_URL} else echo "No devel package found, skipping..." fi