Skip to content

Update Release_Build_Push.yml #19

Update Release_Build_Push.yml

Update Release_Build_Push.yml #19

name: Create Release on PR Merge and build
on:
pull_request:
types: [closed]
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false -Xmx6g -Xms6g
CONTAINER_REGISTRY: quay.io/opsmxpublic
jobs:
create_release:
if: github.event.pull_request.merged == true
#&& github.event.pull_request.base.ref == '1.30.1'
runs-on: ubuntu-latest
outputs:
rc_number: ${{ steps.determine_rc_number.outputs.rc_number }}
new_tag: ${{ steps.determine_rc_number.outputs.new_tag }}
branch_name: ${{ steps.get_branch_name.outputs.branch }}
#version: ${{ steps.extract_version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Get branch name
id: get_branch_name
run: echo "::set-output name=branch::${GITHUB_REF#refs/heads/}"
- name: Determine RC number
id: determine_rc_number
run: |
branch_name=$INPUT_BRANCH_NAME
git fetch --tags -q
latest_tag=$(git tag -l | grep "${branch_name}_rc*" | sort -V | tail -n1)
rc_number=$(echo "$latest_tag" | sed 's/.*_rc\([0-9]*\)$/\1/')
next_rc=$((rc_number + 1))
new_tag=$(echo "$latest_tag" | sed "s/rc${rc_number}/rc${next_rc}/")
echo "Latest tag: $latest_tag"
echo "New tag: $new_tag"
echo "::set-output name=last_tag::$new_tag"
echo "::set-output name=rc_number::$next_rc"
echo "new_tag=$new_tag" >> $GITHUB_OUTPUT
echo "rc_number=$next_rc" >> $GITHUB_OUTPUT
echo "branch_name=$branch_name" >> $GITHUB_OUTPUT
shell: bash
env:
INPUT_BRANCH_NAME: ${{ steps.get_branch_name.outputs.branch }}
#- name: Extract Version from YAML
# id: extract_version
#run: |
# version=$(curl -s https://storage.googleapis.com/halconfig/bom/1.30.1.yml | yq '.services.rosco.version')
# echo "::set-output name=version::$version"
#echo "version=$version" >> $GITHUB_OUTPUT
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.determine_rc_number.outputs.new_tag }}
release_name: "Branch: ${{ steps.get_branch_name.outputs.branch }} and tag: ${{ steps.determine_rc_number.outputs.new_tag }}"
body: |
This is an automatically generated release for PR ${{ github.event.pull_request.number }}.
Add your release notes here.
draft: false
prerelease: false
Build_code:
needs: [create_release]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'zulu'
- name: Prepare build variables
id: build_variables
run: |
echo "::set-output name=REPO::ubi8-spin-rosco"
echo "::set-output name=GITHASH::$(git rev-parse --short HEAD)"
echo "::set-output name=BUILDDATE::$(date -u +"%Y%m%d%H%M")"
- name: Login to Quay
uses: docker/login-action@v1
# use service account flow defined at: https://github.com/docker/login-action#service-account-based-authentication-1
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_KEY }}
- name: Build
run: |
./gradlew --no-daemon -PenableCrossCompilerPlugin=true rosco-web:installDist -x test
- name: dockerBuildpush
uses: docker/build-push-action@v2
with:
context: .
file: docker/ubi8/Dockerfile
push: true
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ needs.create_release.outputs.branch_name }}_v${{ needs.create_release.outputs.version }}-rc${{ needs.create_release.outputs.rc_number }}-${{ steps.build_variables.outputs.GITHASH }}-${{ steps.build_variables.outputs.BUILDDATE }}"