Publish artifact #295
Workflow file for this run
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: Publish artifact | |
on: | |
release: | |
types: [published] | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
determine-version: | |
runs-on: ubuntu-latest | |
outputs: | |
project-version: ${{ steps.set-version.outputs.project-version }} | |
is-lts: ${{ steps.set-version.outputs.is-lts }} | |
is-rc: ${{ steps.set-version.outputs.is-rc }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version: 17 | |
cache: "maven" | |
- name: Set version | |
id: set-version | |
run: | | |
version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) | |
dot_count=$(echo $version | sed 's/[^.]//g' | awk '{ print length }') | |
if [ "${dot_count}" = '2' ] | |
then | |
is_lts=true | |
else | |
is_lts=false | |
fi | |
is_rc=false | |
if [[ ${version} == *"-SNAPSHOT" ]]; then | |
is_rc=true | |
fi | |
echo "Version is $version, is_lts: $is_lts, is_rc: $is_rc" | |
echo "is-lts=${is_lts}" >> $GITHUB_OUTPUT | |
echo "project-version=$version" >> $GITHUB_OUTPUT | |
echo "is-rc=${is_rc}" >> $GITHUB_OUTPUT | |
war: | |
permissions: | |
contents: write # to upload release asset (softprops/action-gh-release) | |
runs-on: ubuntu-latest | |
needs: determine-version | |
if: ${{ needs.determine-version.outputs.is-rc == 'false' }} | |
steps: | |
- name: Fetch war | |
id: fetch-war | |
run: | | |
FILE_NAME=jenkins.war | |
PROJECT_VERSION=${{ needs.determine-version.outputs.project-version }} | |
IS_LTS=${{ needs.determine-version.outputs.is-lts }} | |
echo $PROJECT_VERSION | |
echo "file-name=$FILE_NAME" >> $GITHUB_OUTPUT | |
REPO=war | |
if [ ${IS_LTS} = 'true' ] | |
then | |
REPO=war-stable | |
fi | |
echo $REPO | |
wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME} | |
- name: Upload Release Asset | |
id: upload-war | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: ${{ steps.fetch-war.outputs.file-name }} | |
debian: | |
permissions: | |
contents: write # to upload release asset (softprops/action-gh-release) | |
runs-on: ubuntu-latest | |
needs: determine-version | |
if: ${{ needs.determine-version.outputs.is-rc == 'false' }} | |
steps: | |
- name: Fetch Deb | |
id: fetch-deb | |
if: always() | |
run: | | |
PROJECT_VERSION=${{ needs.determine-version.outputs.project-version }} | |
echo $PROJECT_VERSION | |
FILE_NAME=jenkins_${PROJECT_VERSION}_all.deb | |
IS_LTS=${{ needs.determine-version.outputs.is-lts }} | |
echo "file-name=$FILE_NAME" >> $GITHUB_OUTPUT | |
REPO=debian | |
if [ ${IS_LTS} = 'true' ] | |
then | |
REPO=debian-stable | |
fi | |
echo $REPO | |
wget -q https://get.jenkins.io/${REPO}/${FILE_NAME} | |
- name: Upload Release Asset | |
id: upload-deb | |
if: always() | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: ${{ steps.fetch-deb.outputs.file-name }} | |
redhat: | |
permissions: | |
contents: write # to upload release asset (softprops/action-gh-release) | |
runs-on: ubuntu-latest | |
needs: determine-version | |
if: ${{ needs.determine-version.outputs.is-rc == 'false' }} | |
steps: | |
- name: Fetch RPM | |
id: fetch-rpm | |
if: always() | |
run: | | |
PROJECT_VERSION=${{ needs.determine-version.outputs.project-version }} | |
echo $PROJECT_VERSION | |
FILE_NAME=jenkins-${PROJECT_VERSION}-1.1.noarch.rpm | |
IS_LTS=${{ needs.determine-version.outputs.is-lts }} | |
echo "file-name=$FILE_NAME" >> $GITHUB_OUTPUT | |
REPO=redhat | |
if [ ${IS_LTS} = 'true' ] | |
then | |
REPO=redhat-stable | |
fi | |
echo $REPO | |
wget -q https://get.jenkins.io/${REPO}/${FILE_NAME} | |
- name: Upload Release Asset | |
id: upload-rpm | |
if: always() | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: ${{ steps.fetch-rpm.outputs.file-name }} | |
windows: | |
permissions: | |
contents: write # to upload release asset (softprops/action-gh-release) | |
runs-on: ubuntu-latest | |
needs: determine-version | |
if: ${{ needs.determine-version.outputs.is-rc == 'false' }} | |
steps: | |
- name: Fetch MSI | |
id: fetch-msi | |
if: always() | |
run: | | |
PROJECT_VERSION=${{ needs.determine-version.outputs.project-version }} | |
echo $PROJECT_VERSION | |
FILE_NAME=jenkins.msi | |
IS_LTS=${{ needs.determine-version.outputs.is-lts }} | |
echo "file-name=$FILE_NAME" >> $GITHUB_OUTPUT | |
REPO=windows | |
if [ ${IS_LTS} = 'true' ] | |
then | |
REPO=windows-stable | |
fi | |
echo $REPO | |
wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME} | |
- name: Upload Release Asset | |
id: upload-msi | |
if: always() | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: ${{ steps.fetch-msi.outputs.file-name }} | |
suse: | |
permissions: | |
contents: write # to upload release asset (softprops/action-gh-release) | |
runs-on: ubuntu-latest | |
needs: determine-version | |
if: ${{ needs.determine-version.outputs.is-rc == 'false' }} | |
steps: | |
- name: Fetch suse rpm | |
id: fetch-suse-rpm | |
if: always() | |
run: | | |
PROJECT_VERSION=${{ needs.determine-version.outputs.project-version }} | |
echo $PROJECT_VERSION | |
# we need opensuse to the file | |
OUTPUT_FILE_NAME=jenkins-${PROJECT_VERSION}-1.2-opensuse.noarch.rpm | |
IS_LTS=${{ needs.determine-version.outputs.is-lts }} | |
echo "file-name=$OUTPUT_FILE_NAME" >> $GITHUB_OUTPUT | |
REPO=opensuse | |
if [ ${IS_LTS} = 'true' ] | |
then | |
REPO=opensuse-stable | |
fi | |
echo $REPO | |
wget -q https://get.jenkins.io/${REPO}/jenkins-${PROJECT_VERSION}-1.2.noarch.rpm -O ${OUTPUT_FILE_NAME} | |
- name: Upload Release Asset | |
id: upload-suse-rpm | |
if: always() | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: ${{ steps.fetch-suse-rpm.outputs.file-name }} |