Create new Release #377
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create new Release | |
on: | |
workflow_dispatch: | |
repository_dispatch: | |
types: perform-release | |
schedule: | |
- cron: '0 9 * * 1' | |
jobs: | |
build: | |
permissions: write-all | |
name: Publish | |
runs-on: ubuntu-latest | |
steps: | |
- uses: styfle/[email protected] | |
- uses: actions/checkout@v4 | |
- name: Prepare assets and increment version | |
run: | | |
curl --insecure --silent --location --write-out '%{http_code}' --output ./piper_master https://github.com/SAP/jenkins-library/releases/latest/download/piper_master | |
curl --insecure --silent --location --write-out '%{http_code}' --output ./piper_master-darwin.x86_64 https://github.com/SAP/jenkins-library/releases/latest/download/piper_master-darwin.x86_64 | |
curl --insecure --silent --location --write-out '%{http_code}' --output ./piper_master-darwin.arm64 https://github.com/SAP/jenkins-library/releases/latest/download/piper_master-darwin.arm64 | |
cp ./piper_master ./piper | |
cp ./piper_master-darwin.x86_64 ./piper-darwin.x86_64 | |
cp ./piper_master-darwin.arm64 ./piper-darwin.arm64 | |
npm install semver --quiet | |
echo "PIPER_version=v$(node_modules/.bin/semver -i minor $(curl --silent "https://api.github.com/repos/$GITHUB_REPOSITORY/releases/latest" | jq -r .tag_name))" >> $GITHUB_ENV | |
- uses: SAP/project-piper-action@master | |
name: Publish prerelease | |
with: | |
piper-version: master | |
command: githubPublishRelease | |
flags: > | |
--preRelease true | |
--token ${{ secrets.GITHUB_TOKEN }} | |
--assetPathList ./piper --assetPathList ./piper_master | |
--assetPathList ./piper-darwin.x86_64 --assetPathList ./piper_master-darwin.x86_64 | |
--assetPathList ./piper-darwin.arm64 --assetPathList ./piper_master-darwin.arm64 | |
- name: Download Piper binary from recently published prerelease | |
uses: robinraju/release-downloader@v1 | |
with: | |
tag: ${{ env.PIPER_version }} | |
fileName: 'piper' | |
- name: Test binary (check output for 'commit:' substring) | |
run: | | |
chmod +x piper | |
if ./piper version | grep -Fq "commit:"; then | |
echo "piper binary test is successful" | |
else | |
echo "piper binary test failed" | |
./piper version | |
exit 1 | |
fi | |
- name: Get recently published prerelease id | |
id: release_id | |
run: > | |
curl -L -s -o resp.json | |
-H "Accept: application/vnd.github.raw+json" | |
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" | |
${{ github.api_url }}/repos/${{ github.repository }}/releases | |
echo "release_id=$(jq 'first(.[] | select(.tag_name == "${{ env.PIPER_version }}")).id' resp.json)" >> "$GITHUB_OUTPUT" | |
- name: Convert prereleae to Release | |
run: > | |
curl --fail-with-body -L -X PATCH | |
-H "Accept: application/vnd.github+json" | |
-H "Authorization: Bearer ${{ github.token }}" | |
${{ github.api_url }}/repos/${{ github.repository }}/releases/${{ steps.release_id.outputs.release_id }} | |
-d '{"prerelease": false, "make_latest": true}' | |
# Workaround for https://github.com/SAP/jenkins-library/issues/1723, build only works with jdk8 currently | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: 8 | |
distribution: zulu | |
- name: Build and publish jar for consumption in unit tests | |
run: mvn package | |
- uses: SAP/project-piper-action@master | |
name: 'publish Piper jar' | |
with: | |
piper-version: master | |
command: githubPublishRelease | |
flags: --token ${{ secrets.GITHUB_TOKEN }} --version latest --assetPath ./target/jenkins-library.jar |