diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 7396547e7..000000000 --- a/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# This Dockerfile is only for GitHub Actions -FROM python:3.10-bullseye - -RUN set -ex; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - git-lfs - -# install backported stable version of git, which supports ssh signing -RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list; \ - apt-get update;\ - apt-get install -y git/bullseye-backports - -ENV PYTHONPATH /semantic-release - -COPY . /semantic-release - -RUN cd /semantic-release && \ - python -m venv /semantic-release/.venv && \ - /semantic-release/.venv/bin/pip install . - -RUN /semantic-release/.venv/bin/python -m semantic_release --help - -ENTRYPOINT ["/semantic-release/action.sh"] diff --git a/action.sh b/action.sh index 9429ae9ee..c1e75f5c0 100755 --- a/action.sh +++ b/action.sh @@ -24,19 +24,8 @@ eval_boolean_action_input() { } # Copy inputs into correctly-named environment variables -export GH_TOKEN="${INPUT_GITHUB_TOKEN}" -export PATH="${PATH}:/semantic-release/.venv/bin" -export GIT_COMMITTER_NAME="${INPUT_GIT_COMMITTER_NAME:="github-actions"}" -export GIT_COMMITTER_EMAIL="${INPUT_GIT_COMMITTER_EMAIL:="github-actions@github.com"}" -export SSH_PRIVATE_SIGNING_KEY="${INPUT_SSH_PRIVATE_SIGNING_KEY}" -export SSH_PUBLIC_SIGNING_KEY="${INPUT_SSH_PUBLIC_SIGNING_KEY}" +source ~/semantic-release/.venv/bin/activate export GIT_COMMIT_AUTHOR="${GIT_COMMITTER_NAME} <${GIT_COMMITTER_EMAIL}>" -export ROOT_OPTIONS="${INPUT_ROOT_OPTIONS:="-v"}" -export PRERELEASE="${INPUT_PRERELEASE:="false"}" -export COMMIT="${INPUT_COMMIT:="false"}" -export PUSH="${INPUT_PUSH:="false"}" -export CHANGELOG="${INPUT_CHANGELOG:="false"}" -export VCS_RELEASE="${INPUT_VCS_RELEASE:="false"}" # Convert inputs to command line arguments export ARGS=() @@ -49,28 +38,24 @@ ARGS+=("$(eval_boolean_action_input "vcs_release" "$VCS_RELEASE" "--vcs-release" # Handle --patch, --minor, --major # https://stackoverflow.com/a/47541882 valid_force_levels=("patch" "minor" "major") -if [ -z "$INPUT_FORCE" ]; then +if [ -z "$FORCE" ]; then true # do nothing if 'force' input is not set -elif printf '%s\0' "${valid_force_levels[@]}" | grep -Fxzq "$INPUT_FORCE"; then - ARGS+=("--$INPUT_FORCE") +elif printf '%s\0' "${valid_force_levels[@]}" | grep -Fxzq "$FORCE"; then + ARGS+=("--$FORCE") else printf "Error: Input 'force' must be one of: %s\n" "${valid_force_levels[@]}" >&2 fi -if [ -n "$INPUT_BUILD_METADATA" ]; then - ARGS+=("--build-metadata $INPUT_BUILD_METADATA") +if [ -n "$BUILD_METADATA" ]; then + ARGS+=("--build-metadata $BUILD_METADATA") fi # Change to configured directory -cd "${INPUT_DIRECTORY}" +cd "${DIRECTORY}" # Set Git details -git config --global user.name "$GIT_COMMITTER_NAME" -git config --global user.email "$GIT_COMMITTER_EMAIL" - -# See https://github.com/actions/runner-images/issues/6775#issuecomment-1409268124 -# and https://github.com/actions/runner-images/issues/6775#issuecomment-1410270956 -git config --system --add safe.directory "*" +git config user.name "$GIT_COMMITTER_NAME" +git config user.email "$GIT_COMMITTER_EMAIL" if [[ -n $SSH_PUBLIC_SIGNING_KEY && -n $SSH_PRIVATE_SIGNING_KEY ]]; then echo "SSH Key pair found, configuring signing..." @@ -82,16 +67,16 @@ if [[ -n $SSH_PUBLIC_SIGNING_KEY && -n $SSH_PRIVATE_SIGNING_KEY ]]; then chmod 600 ~/.ssh/signing_key && chmod 600 ~/.ssh/signing_key.pub eval "$(ssh-agent)" ssh-add ~/.ssh/signing_key - git config --global gpg.format ssh - git config --global user.signingKey ~/.ssh/signing_key - git config --global commit.gpgsign true - git config --global user.email $GIT_COMMITTER_EMAIL - git config --global user.name $GIT_COMMITTER_NAME + git config gpg.format ssh + git config user.signingKey ~/.ssh/signing_key + git config commit.gpgsign true + git config user.email $GIT_COMMITTER_EMAIL + git config user.name $GIT_COMMITTER_NAME touch ~/.ssh/allowed_signers echo "$GIT_COMMITTER_EMAIL $SSH_PUBLIC_SIGNING_KEY" >~/.ssh/allowed_signers - git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers + git config gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers fi # Run Semantic Release -/semantic-release/.venv/bin/python \ +~/semantic-release/.venv/bin/python \ -m semantic_release ${ROOT_OPTIONS} version ${ARGS[@]} diff --git a/action.yml b/action.yml index 63d4137e1..243b9f576 100644 --- a/action.yml +++ b/action.yml @@ -21,7 +21,7 @@ inputs: required: false git_committer_email: description: "The email address for the “committer” field" - default: "github-actions@github.com" + default: "action@github.com" required: false ssh_public_signing_key: description: "The ssh public key used to sign commits" @@ -88,17 +88,46 @@ inputs: outputs: released: + value: ${{ steps.semrel.outputs.released }} description: | "true" if a release was made, "false" otherwise version: + value: ${{ steps.semrel.outputs.released }} description: | The newly released version if one was made, otherwise the current version tag: + value: ${{ steps.semrel.outputs.tag }} description: | The Git tag corresponding to the version output runs: - using: "docker" - image: "Dockerfile" + using: "composite" + steps: + - run: echo "${{ github.action_path }}" >> $GITHUB_PATH + shell: bash + - run: | + python -m venv ~/semantic-release/.venv + source ~/semantic-release/.venv/bin/activate + pip install python-semantic-release + semantic-release --help + shell: bash + - run: action.sh + id: semrel + shell: bash + env: + GH_TOKEN: ${{ inputs.github_token }} + GIT_COMMITTER_NAME: ${{ inputs.git_committer_name }} + GIT_COMMITTER_EMAIL: ${{ inputs.git_committer_email }} + SSH_PRIVATE_SIGNING_KEY: ${{ inputs.ssh_private_signing_key }} + SSH_PUBLIC_SIGNING_KEY: ${{ inputs.ssh_public_signing_key }} + ROOT_OPTIONS: ${{ inputs.root_options }} + PRERELEASE: ${{ inputs.prerelease }} + COMMIT: ${{ inputs.commit }} + PUSH: ${{ inputs.push }} + CHANGELOG: ${{ inputs.changelog }} + VCS_RELEASE: ${{ inputs.vcs_release }} + FORCE: ${{ inputs.force }} + BUILD_METADATA: ${{ inputs.build_metadata }} + DIRECTORY: ${{ inputs.directory }} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy