GitHub 슬러그 작업

4025 단어 githubactionsgithub
우리는 오늘 다른 종류의 행동을 보고 있습니다! 이 작업은 실제로 아무 것도 하지 않습니다. 대신 다른 작업에서 사용할 수 있도록 워크플로 및 환경에서 더 많은 정보를 사용할 수 있습니다.


사실 시트



작가
레스피나스

기여자
9


106

레포
https://github.com/rlespinasse/github-slug-action

시장
https://github.com/marketplace/actions/github-slug-action


그것은 무엇을합니까?


github-slug-ref 작업은 워크플로에 일반적으로 필요한 정보를 유용한 형식으로 제공합니다. 기본적으로 GITHUB_REF와 같은 변수는 refs/heads/main 또는 refs/tags/v1.0.0 형식입니다. 이것은 사람들이 참조하는 것이 분기인지 태그인지에 대해 생각하는 데 익숙하지 않고 refs 접두사에 익숙하지 않기 때문에 사람들을 포착합니다.
rlespinasse/github-slug-action 작업이 워크플로에 포함되면 몇 가지 새로운 환경 변수를 사용할 수 있습니다. 이를 포함하려면 uses 키 내에 steps 항목을 추가하십시오.

name: Slug Demo
on: push
jobs:
  demo:
    runs-on: ubuntu-latest
    steps:
      - uses: rlespinasse/[email protected]


위에서 GITHUB_REF를 생각하면, GITHUB_REF_SLUG는 이 액션을 포함하고 나서 가능합니다. GITHUB_REFrefs/heads/main 이면 GITHUB_REF_SLUGmain 가 됩니다. 입력이 refs/tags/v1.0.0 이면 GITHUB_REF_SLUGv1.0.0 가 됩니다. 변환의 전체 목록을 보려면 slug variables 문서를 참조하십시오. URL에서 사용하기에 안전한 슬러그를 찾고 있다면 URL slug variables에도 관심이 있을 수 있습니다.

액션의 또 다른 특징은 짧은 변수입니다. 전체 sha ( GITHUB_SHA 에서 사용 가능) 외에도 이 작업은 GITHUB_SHA_SHORT 에서 사용 가능한 8자 접두사를 만듭니다. 이것은 반고유 식별자가 필요하고 전체sha보다 더 짧은 키를 원할 때 유용할 수 있습니다.

기존 환경 변수를 조작하는 것 외에도 작업은 github.event의 일부 정보를 환경 변수로 사용할 수 있도록 합니다. 예를 들어, github.event.pull_request.head.shaGITHUB_EVENT_PULL_REQUEST_HEAD_SHA_SHORT로 사용할 수 있습니다. 이것은 bash 스크립트를 작성하고 구문 분석할 수 없을 때 유용합니다event.json.

어떻게 작동합니까?



소스 코드를 보면 이 작업은 정규식의 대규모 모음입니다. 다음과 같은 경우를 처리합니다.
  • Replacing any non-alphanumeric character
  • Removing refs/* from GITHUB_REF
  • Ensure that all slugs are less than 63 characters long

  • 소스 코드에서 생성하는 모든 변수를 보려면 모두 available in main.ts 입니다.

    액션 자체가 컴파일되고pushed to the repo 사람들이 직접 사용할 수 있습니다. 이것은 내가 개인적으로 좋아하는 패턴은 아니지만(build and tag action을 사용하는 것을 선호함) 소비자가 자바스크립트 런타임을 사용할 수 있으므로 합리적인 절충안입니다.

    좋은 웹페이지 즐겨찾기