diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ae3719..95ab218 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,3 +110,38 @@ jobs: - name: Test run: | prove -lv t + + build-artifact: + needs: run-tests + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + + - name: apt install + run: sudo apt-get install -y build-essential git libmodule-install-perl gettext + + - name: build + run: perl Makefile.PL && make all dist + + - name: Get short SHA + id: short_sha + run: | + if [ "${{ github.event_name }}" == "pull_request" ]; then + echo "SHORT_SHA=$(echo ${{ github.event.pull_request.head.sha }} | cut -c1-7)" >> $GITHUB_ENV + else + echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV + fi + + - name: Get Zonemaster-CLI version + id: version + run: | + result=`grep "use version; our $VERSION" lib/Zonemaster/CLI.pm` + result+='printf $VERSION;' + VERSION=`perl -e "$result"` + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: upload artifact + uses: actions/upload-artifact@v4 + with: + name: Zonemaster-CLI-${{ steps.version.outputs.version }}-${{ env.SHORT_SHA }} + path: Zonemaster-CLI-${{ steps.version.outputs.version }}.tar.gz diff --git a/README.md b/README.md index 9f370cf..87600ec 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,15 @@ Additional end-user documentation is available in the [USING] document. When developing Zonemaster-CLI, refer to the [development documentation]. +## CI artifact + +A tarball (`Zonemaster-CLI-.tar.gz`) is built and uploaded as a GitHub Actions artifact on every push and pull request. This artifact can be useful for release testing and PR review. +To download it: +1. Go to the [Actions tab](https://github.com/zonemaster/zonemaster-cli/actions) of the repository. +2. Select a workflow run (e.g. for a specific PR or branch). +3. Scroll to the bottom of the run summary to the **Artifacts** section. +4. Download the artifact named `Zonemaster-CLI--`. +The artifact name includes the module version and the first 7 characters of the commit SHA. ## Participation, Contact and Bug reporting