diff --git a/.github/workflows/Tip.yml b/.github/workflows/TestReleaser.yml similarity index 83% rename from .github/workflows/Tip.yml rename to .github/workflows/TestReleaser.yml index 8f06c10..5ed94ac 100644 --- a/.github/workflows/Tip.yml +++ b/.github/workflows/TestReleaser.yml @@ -1,4 +1,4 @@ -name: Tip +name: Test Releaser on: push: @@ -25,14 +25,14 @@ jobs: - run: echo "Build some tool and generate some (versioned) artifacts" > artifact-$(date -u +"%Y-%m-%dT%H-%M-%SZ").txt - name: Single - uses: ./tip + uses: ./releaser with: rm: true token: ${{ secrets.GITHUB_TOKEN }} files: artifact-*.txt - name: List - uses: ./tip + uses: ./releaser with: token: ${{ secrets.GITHUB_TOKEN }} files: | @@ -46,18 +46,18 @@ jobs: touch artifacts/empty_file.txt - name: Single in subdir - uses: ./tip + uses: ./releaser with: token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/artifact.txt - name: Add artifacts/*.md run: | - echo "tip hello" > artifacts/hello.md - echo "tip world" > artifacts/world.md + echo "releaser hello" > artifacts/hello.md + echo "releaser world" > artifacts/world.md - name: Directory wildcard - uses: ./tip + uses: ./releaser with: token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/* @@ -68,7 +68,7 @@ jobs: echo "Test recursive glob" > artifacts/subdir/deep_file.txt - name: Directory wildcard (recursive) - uses: ./tip + uses: ./releaser with: token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/** @@ -83,14 +83,14 @@ jobs: - run: echo "Build some tool and generate some (versioned) artifacts" > artifact-$(date -u +"%Y-%m-%dT%H-%M-%SZ").txt - name: Single - uses: ./tip/composite + uses: ./releaser/composite with: rm: true token: ${{ secrets.GITHUB_TOKEN }} files: artifact-*.txt - name: List - uses: ./tip/composite + uses: ./releaser/composite with: token: ${{ secrets.GITHUB_TOKEN }} files: | @@ -104,18 +104,18 @@ jobs: touch artifacts/empty_file.txt - name: Single in subdir - uses: ./tip/composite + uses: ./releaser/composite with: token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/artifact.txt - name: Add artifacts/*.md run: | - echo "tip hello" > artifacts/hello.md - echo "tip world" > artifacts/world.md + echo "releaser hello" > artifacts/hello.md + echo "releaser world" > artifacts/world.md - name: Directory wildcard - uses: ./tip/composite + uses: ./releaser/composite with: token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/* @@ -126,7 +126,7 @@ jobs: echo "Test recursive glob" > artifacts/subdir/deep_file.txt - name: Directory wildcard (recursive) - uses: ./tip/composite + uses: ./releaser/composite with: token: ${{ secrets.GITHUB_TOKEN }} files: artifacts/** diff --git a/tip/Dockerfile b/releaser/Dockerfile similarity index 59% rename from tip/Dockerfile rename to releaser/Dockerfile index 3079fa5..2290f49 100644 --- a/tip/Dockerfile +++ b/releaser/Dockerfile @@ -1,4 +1,4 @@ FROM python:3.9-slim-bullseye -COPY tip.py /tip.py +COPY releaser.py /releaser.py RUN pip install PyGithub --progress-bar off -CMD ["/tip.py"] +CMD ["/releaser.py"] diff --git a/tip/README.md b/releaser/README.md similarity index 84% rename from tip/README.md rename to releaser/README.md index d25639b..09b89be 100644 --- a/tip/README.md +++ b/releaser/README.md @@ -1,12 +1,12 @@ -# Tip +# Releaser -**Tip** is a Docker GitHub Action written in Python. +**Releaser** is a Docker GitHub Action written in Python. -**Tip** allows to keep a GitHub Release of type pre-release and its artifacts up to date with latest builds. -Combined with a workflow that is executed periodically, **Tip** allows to provide a fixed release name for users willing +**Releaser** allows to keep a GitHub Release of type pre-release and its artifacts up to date with latest builds. +Combined with a workflow that is executed periodically, **Releaser** allows to provide a fixed release name for users willing to use daily/nightly artifacts of a project. -Furthermore, when any [semver](https://semver.org) compilant tagged commit is pushed, **Tip** can create a release and +Furthermore, when any [semver](https://semver.org) compilant tagged commit is pushed, **Releaser** can create a release and upload assets. ## Context @@ -30,9 +30,9 @@ From a practical point of view, [actions/github-script](https://github.com/actio Still, it requires writing plain JavaScript. Alternatively, there are non-official GitHub API libraries available in other languages (see [docs.github.com: rest/overview/libraries](https://docs.github.com/en/rest/overview/libraries)). -**Tip** is based on [PyGithub/PyGithub](https://github.com/PyGithub/PyGithub), a Python client for the GitHub API. +**Releaser** is based on [PyGithub/PyGithub](https://github.com/PyGithub/PyGithub), a Python client for the GitHub API. -**Tip** was originally created in [eine/tip](https://github.com/eine/tip), as an enhanced alternative to using +**Releaser** was originally created in [eine/tip](https://github.com/eine/tip), as an enhanced alternative to using `actions/create-release` and `actions/upload-release-asset`, in order to cover certain use cases that were being migrated from Travis CI to GitHub Actions. The main limitation of GitHub's Actions was/is verbosity and not being possible to dynamically define the list of assets @@ -42,7 +42,7 @@ On the other hand, GitHub Actions artifacts do require login in order to downloa Conversely, assets of GitHub Releases can be downloaded without login. Therefore, in order to make CI results available to the widest audience, some projects prefer having tarballs available as assets. -In this context, one of the main use cases of **Tip** is pushing artifacts as release assets. +In this context, one of the main use cases of **Releaser** is pushing artifacts as release assets. Thus, the name of the Action. ## Usage @@ -72,7 +72,7 @@ jobs: # Update tag and pre-release # - Update (force-push) tag to the commit that is used in the workflow. # - Upload artifacts defined by the user. - - uses: pyTooling/Actions/tip@main + - uses: pyTooling/Actions/releaser@main with: token: ${{ secrets.GITHUB_TOKEN }} files: | @@ -82,11 +82,11 @@ jobs: ### Composite Action -The default implementation of **Tip** is a Container Action. +The default implementation of **Releaser** is a Container Action. Therefore, in each run, the container image is built before starting the job. -Alternatively, a Composite Action version is available: `uses: pyTooling/Actions/tip/composite@main`. +Alternatively, a Composite Action version is available: `uses: pyTooling/Actions/releaser/composite@main`. The Composite version installs the dependencies on the host (the runner environment), instead of using a container. -Both implementations are functionally equivalent from **Tip**'s point of view; however, the Composite Action allows users +Both implementations are functionally equivalent from **Releaser**'s point of view; however, the Composite Action allows users to tweak the version of Python by using [actions/setup-python](https://github.com/actions/setup-python) before. ## Options @@ -117,10 +117,10 @@ Whether to create releases from any tag or to treat some as snapshots. By defaul ## Advanced/complex use cases -**Tip** is essentially a very fine wrapper to use the GitHub Actions context data along with the classes +**Releaser** is essentially a very fine wrapper to use the GitHub Actions context data along with the classes and methods of PyGithub. -Similarly to [actions/github-script](https://github.com/actions/github-script), users with advanced/complex requirements might find it desirable to write their own Python script, instead of using **Tip**. +Similarly to [actions/github-script](https://github.com/actions/github-script), users with advanced/complex requirements might find it desirable to write their own Python script, instead of using **Releaser**. In fact, since `shell: python` is supported in GitHub Actions, using Python does *not* require any Action. For prototyping purposes, the following job might be useful: diff --git a/tip/action.yml b/releaser/action.yml similarity index 88% rename from tip/action.yml rename to releaser/action.yml index 07729a0..ee7e73a 100644 --- a/tip/action.yml +++ b/releaser/action.yml @@ -1,5 +1,5 @@ -name: 'tip' -description: "keep a pre-release always up-to-date" +name: 'Releaser' +description: 'Publish releases, upload assets and update tip/nightly tags' inputs: token: description: 'Token to make authenticated API calls; can be passed in using {{ secrets.GITHUB_TOKEN }}' diff --git a/tip/composite/action.yml b/releaser/composite/action.yml similarity index 87% rename from tip/composite/action.yml rename to releaser/composite/action.yml index 255b4f6..4fde76f 100644 --- a/tip/composite/action.yml +++ b/releaser/composite/action.yml @@ -1,5 +1,5 @@ -name: 'tip' -description: "keep a pre-release always up-to-date" +name: 'Releaser' +description: 'Publish releases, upload assets and update tip/nightly tags' inputs: token: description: 'Token to make authenticated API calls; can be passed in using {{ secrets.GITHUB_TOKEN }}' @@ -27,7 +27,7 @@ runs: run: pip install PyGithub --progress-bar off - shell: bash - run: ${{ github.action_path }}/../tip.py + run: ${{ github.action_path }}/../releaser.py env: INPUT_TOKEN: ${{ inputs.token }} INPUT_FILES: ${{ inputs.files }} diff --git a/tip/pyproject.toml b/releaser/pyproject.toml similarity index 100% rename from tip/pyproject.toml rename to releaser/pyproject.toml diff --git a/tip/tip.py b/releaser/releaser.py similarity index 100% rename from tip/tip.py rename to releaser/releaser.py