Skip to content

Initial commit

Initial commit #6

Workflow file for this run

name: Release Workflow
on:
push:
branches: [development, release-*]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
uses: epam/ai-dial-ci/.github/workflows/java_test.yml@3.1.3
secrets: inherit
permissions:
contents: read
actions: write
checks: write
security-events: write
with:
bypass-checks: false
style-checks-enabled: true
style-checks-bypassed: false
code-checks-enabled: true
code-checks-bypassed: false
ort-enabled: true
ort-bypassed: false
ort-version: "latest"
java-version: "25"
java-distribution: "corretto"
runs-on: '["ubuntu-24.04"]'
submit-dependencies:
# Do not submit dependencies on private repos - GitHub Advanced Security is not enabled
if: ${{ !github.event.repository.private }}
runs-on: ubuntu-24.04
permissions:
contents: write # to submit dependency graph
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
- uses: epam/ai-dial-ci/actions/java_prepare@3.1.3
with:
java-version: "25"
java-distribution: "corretto"
- uses: gradle/actions/dependency-submission@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
dependency-graph: generate-and-submit # Default value is 'generate-submit-and-upload', but we do not want job artifacts
calculate_version:
runs-on: ubuntu-24.04
permissions:
contents: read
outputs:
next-version: ${{ steps.semantic_versioning.outputs.next-version }}
is-latest: ${{ steps.semantic_versioning.outputs.is-latest }}
latest-tag: ${{ steps.semantic_versioning.outputs.latest-tag }}
steps:
- uses: epam/ai-dial-ci/actions/semantic_versioning@3.1.3
id: semantic_versioning
release:
runs-on: ubuntu-24.04
needs: [test, calculate_version]
permissions:
contents: read
packages: write
security-events: write
strategy:
matrix:
include:
- image-name: "epam/statgpt-sdmx-proxy"
dockerfile: "sdmx-proxy/src/main/docker/Dockerfile"
- image-name: "epam/statgpt-sdmx-proxy-config-server"
dockerfile: "sdmx-proxy-config-server/src/main/docker/Dockerfile"
steps:
- name: Maximize build space
uses: nepalevov/maximize-build-space@046c48361370e2f3fa758bd2f10c6ce29109ef62 # v1.1.0
if: false # Maximize build space by removing unwanted software if set to true
with:
remove-dotnet: "true"
remove-android: "true"
remove-haskell: "true"
remove-codeql: "true"
remove-large-packages: "true"
remove-cached-tools: "true"
remove-swapfile: "true"
remove-java: "true"
remove-swift: "true"
remove-julia: "true"
remove-browsers: "true"
remove-cloud-tools: "true"
remove-kubernetes-tools: "true"
remove-powershell: "true"
remove-container-tools: "true"
remove-rust: "true"
remove-python: "true"
remove-node: "true"
remove-go: "true"
remove-ruby: "true"
docker-cleanup: "true"
set-tmpdir: "true"
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
lfs: true
token: ${{ secrets.ACTIONS_BOT_TOKEN }}
- uses: epam/ai-dial-ci/actions/java_prepare@3.1.3
with:
java-version: "25"
java-distribution: "corretto"
- name: Set version in build.gradle for Docker build
shell: bash
run: |
sed -i -E "s/^([ \t]*version[ \t]*=[ \t]*)[\"'].*[\"']/\1\"${{ needs.calculate_version.outputs.next-version }}\"/g" build.gradle
- uses: ./.github/actions/build_docker
with:
ghcr-username: ${{ github.actor }}
ghcr-password: ${{ secrets.ACTIONS_BOT_TOKEN }}
dockerhub-username: ${{ secrets.DOCKERHUB_LOGIN }}
dockerhub-password: ${{ secrets.DOCKERHUB_TOKEN }}
image-name: ${{ matrix.image-name }}
dockerfile-path: ${{ matrix.dockerfile }}
image-tag: ${{ needs.calculate_version.outputs.next-version }}
push-enabled: true
trivy-enabled: true
bypass-checks: false
trivy-severity: "CRITICAL,HIGH"
trivy-severity-for-sarif: "CRITICAL,HIGH"
trivy-limit-severities-for-sarif: true
gpr-username: ${{ github.actor }}
gpr-password: ${{ secrets.GITHUB_TOKEN }}
platforms: "linux/amd64"
image-extra-aliases: |
ghcr.io/${{ matrix.image-name }}:${{ needs.calculate_version.outputs.next-version }}
${{ github.ref == 'refs/heads/development' && format('{0}:development', matrix.image-name) || '' }}
${{ github.ref == 'refs/heads/development' && format('ghcr.io/{0}:development', matrix.image-name) || '' }}
${{ startsWith(github.ref, 'refs/heads/release-') && needs.calculate_version.outputs.is-latest == 'true' && format('{0}:latest', matrix.image-name) || '' }}
${{ startsWith(github.ref, 'refs/heads/release-') && needs.calculate_version.outputs.is-latest == 'true' && format('ghcr.io/{0}:latest', matrix.image-name) || '' }}
create_release:
runs-on: ubuntu-24.04
needs: [calculate_version, release]
permissions:
contents: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
token: ${{ secrets.ACTIONS_BOT_TOKEN }}
- name: Set version in build.gradle for release
shell: bash
run: |
sed -i -E "s/^([ \t]*version[ \t]*=[ \t]*)[\"'].*[\"']/\1\"${{ needs.calculate_version.outputs.next-version }}\"/g" build.gradle
- uses: epam/ai-dial-ci/actions/generate_release_notes@3.1.3
with:
latest-tag: ${{ needs.calculate_version.outputs.latest-tag }}
- uses: epam/ai-dial-ci/actions/publish_tag_release@3.1.3
with:
tag-version: ${{ needs.calculate_version.outputs.next-version }}
changelog-file: "/tmp/my_changelog" # Comes from generate_release_notes step
extra-commit-command: |
git config --global user.name "statgpt-actions"
git config --global user.email "231008922+statgpt-actions@users.noreply.github.com"
git add build.gradle
git commit -m '[skip ci] Update version' || true