bearer #51
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: Build | |
on: | |
push: | |
branches: | |
- 'main' | |
tags: | |
tags-ignore: | |
- 'latest' | |
pull_request: | |
jobs: | |
dependency-resolution: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Cache local Maven repository | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
maven- | |
- name: asdf_install | |
uses: asdf-vm/actions/install@v3 | |
if: steps.cache.outputs.cache-hit != 'true' | |
- name: download dependencies | |
id: download-dependencies | |
run: | | |
export JAVA_HOME=$(asdf where java) | |
export MAVEN_OPTS="-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd'T'HH:mm:ss:SSSZ -Djava.awt.headless=true" | |
./mvnw de.qaware.maven:go-offline-maven-plugin:1.2.8:resolve-dependencies | |
if: steps.cache.outputs.cache-hit != 'true' | |
build: | |
strategy: | |
matrix: | |
product: ['tos.bd','tos.di','tos.dq','tos.esb'] | |
permissions: | |
contents: read | |
packages: write | |
runs-on: ubuntu-latest | |
needs: dependency-resolution | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Retrieve cached local Maven repository | |
id: cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: ~/.m2/repository | |
key: maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
maven- | |
- name: asdf_install | |
uses: asdf-vm/actions/install@v3 | |
- name: build talend open studio | |
run: | | |
export JAVA_HOME=$(asdf where java) | |
export MAVEN_OPTS="-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd'T'HH:mm:ss:SSSZ -Djava.awt.headless=true" | |
./mvnw clean deploy -P-nonofficial -DskipTests -D${{ matrix.product }}=true -DaltDeploymentRepository=github::default::https://maven.pkg.github.com/${{ github.repository }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Archive build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.product }} | |
path: 'build/storage/**' | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
if: github.ref_type == 'tag' || github.ref_name == 'main' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
- name: Display structure of downloaded files | |
run: ls -R | |
- name: tag main branch as latest | |
if: github.ref_name == 'main' | |
run: git tag -f latest | |
- name: push latest tag | |
if: github.ref_name == 'main' | |
run: git push -f origin latest | |
- name: Release | |
if: github.ref_name == 'main' || github.ref_type == 'tag' | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
**/*.zip | |
prerelease: ${{ github.ref_type != 'tag' }} | |
tag_name: ${{ github.ref_type == 'tag' && github.ref_name || 'latest' }} |