Nightly Release - Build #16
This file contains hidden or 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: Nightly Release - Build | |
| on: | |
| workflow_call: | |
| inputs: | |
| branch: | |
| type: string | |
| required: true | |
| nightly: | |
| type: boolean | |
| required: true | |
| secrets: | |
| token: | |
| required: false | |
| registry: | |
| required: false | |
| registry_user: | |
| required: false | |
| registry_password: | |
| required: false | |
| outputs: | |
| image_tag: | |
| description: GHCR.io image tag for downstream consumption | |
| value: ${{ jobs.release.outputs.image_tag }} | |
| workflow_dispatch: | |
| inputs: | |
| branch: | |
| type: choice | |
| required: true | |
| description: Which Branch to make the build from | |
| options: | |
| - main | |
| nightly: | |
| type: boolean | |
| required: true | |
| description: Is this part of a "nightly" workflow? | |
| default: true | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| packages: write | |
| contents: write | |
| outputs: | |
| image_tag: ${{steps.build_image.image_tag}} | |
| steps: | |
| - name: checkout code | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| ref: ${{inputs.branch}} | |
| - name: Clean Runner | |
| uses: ./.github/actions/clean-runner | |
| - name: setup java | |
| uses: actions/setup-java@v4.6.0 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '8' | |
| cache: 'maven' | |
| - name: Set version | |
| if: inputs.nightly == true | |
| run: echo "VERSION=${{inputs.branch}}-nightly" >> $GITHUB_ENV | |
| - name: Set version | |
| if: inputs.nightly == false | |
| run: echo "VERSION=${{inputs.branch}}" >> $GITHUB_ENV | |
| - name: show version | |
| run: echo ${VERSION} | |
| - name: Update pom.xml | |
| run: | | |
| if [[ "${{inputs.branch}}" =~ ^[0-9][0-9]\.[0-9][0-9]\.[0-9](-RC[0-9][0-9]+)? ]]; then | |
| with_dash=`sed 's/\./-/g' <<< "${{inputs.branch}}"` | |
| sed -i "s/99-99-99-SNAPSHOT/${with_dash}/" pom.xml | |
| fi | |
| - name: Start Database | |
| uses: ./.github/actions/start-database | |
| - name: Generate Bundle (docs and schemas) | |
| working-directory: schema | |
| run: ant bundle -Dbuilduser.overrides=build/overrides.external.xml -Doracle.image=gvenzl/oracle-free:23.4-full-faststart | |
| - name: Create GitHub Release | |
| id: create_release | |
| uses: softprops/action-gh-release@v2.1.0 | |
| with: | |
| files: | | |
| schema/build/docs.zip | |
| schema/build/resources.jar | |
| schema/build/xmlSchema.zip | |
| tag_name: ${{env.VERSION}} | |
| generate_release_notes: true | |
| token: ${{ secrets.token != null && secrets.token || secrets.GITHUB_TOKEN }} | |
| - name: Log in to the Container registry | |
| id: login-ghcr | |
| uses: docker/login-action@v3.3.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.token != null && secrets.token || secrets.GITHUB_TOKEN }} | |
| - name: Login to HEC Public Registry | |
| uses: docker/login-action@v3.3.0 | |
| id: login-hec | |
| with: | |
| registry: ${{ secrets.registry != null && secrets.registry ||secrets.HEC_PUB_REGISTRY }} | |
| username: ${{ secrets.registry_user != null && secrets.registry_user || secrets.ALT_REG_USER }} | |
| password: ${{ secrets.registry_password != null && secrets.registry_password || secrets.ALT_REG_PASSWORD }} | |
| - name: Build docker image | |
| id: build_image | |
| env: | |
| IMAGE_TAG: ${{env.VERSION}} | |
| HEC_PUB_REGISTRY: ${{secrets.HEC_PUB_REGISTRY}} | |
| working-directory: schema | |
| run: | | |
| #HEC_PUB_REGISTRY="${{secrets.registry != null && secrets.registry ||secrets.HEC_PUB_REGISTRY}}" | |
| REPO=`echo "${{github.repository}}" | tr '[:upper:]' '[:lower:]'` | |
| ant docker.push -Dteamcity.branch=$VERSION \ | |
| -Ddocker.registry=ghcr.io/$REPO \ | |
| -Ddocker.registry_public=$HEC_PUB_REGISTRY | |
| - name: Publish package | |
| run: mvn --batch-mode deploy -Dbuilduser.overrides=schema/build/overrides.external.xml -Pgithub | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: setup java for hec push | |
| uses: actions/setup-java@v4.6.0 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '8' | |
| cache: 'maven' | |
| server-id: hec | |
| server-username: MAVEN_USERNAME | |
| server-password: MAVEN_PASSWORD | |
| - name: Publish package | |
| run: mvn --batch-mode deploy -Dbuilduser.overrides=schema/build/overrides.external.xml -Phec | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| MAVEN_USERNAME: ${{ secrets.registry_user != null && secrets.registry_user || secrets.ALT_REG_USER }} | |
| MAVEN_PASSWORD: ${{ secrets.registry_password != null && secrets.registry_password || secrets.ALT_REG_PASSWORD }} | |
| #- name: Logout of HEC pub registry | |
| # if: ${{ always() }} | |
| # run: | | |
| # docker logout ${{ steps.login-hec.outputs.registry }} | |
| - name: Logout of GH registry | |
| if: ${{ always() }} | |
| run: | | |
| docker logout ${{ steps.login-ghcr.outputs.registry }} |