Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor workflow for common java and maven build steps #29137

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 0 additions & 53 deletions .github/actions/cleanup-macos-runner/action.yml

This file was deleted.

122 changes: 79 additions & 43 deletions .github/actions/cleanup-runner/action.yml
Original file line number Diff line number Diff line change
@@ -1,72 +1,108 @@
# action.yml
name: 'Cleanup Runner'
description: 'Cleans up runner resources'
author: 'victoralfaro-dotcms'
runs:
using: 'composite'
steps:
- name: Show Disk Usage
- name: Show Initial Disk Usage
shell: bash
run: |
echo '# df -h'
echo '# Initial Disk Usage'
df -h
echo "Runner OS: $RUNNER_OS"

echo '# docker images'
docker images || true

echo '# du -sh /home/runner'
sudo du -sh /home/runner || true
if [[ "$RUNNER_OS" == "macOS" ]]; then
HOME_DIR="/Users/runner"
echo '# du -sh $HOME_DIR'
sudo du -sh $HOME_DIR || true
elif [[ "$RUNNER_OS" == "Linux" ]]; then
HOME_DIR="/home/runner"
echo '# docker images'
docker images || true
echo '# du -sh $HOME_DIR'
sudo du -sh $HOME_DIR || true
fi

- name: Clean apt cache
- name: Clean Cache
shell: bash
run: |
echo 'Clean apt cache'
time sudo apt-get clean -y
time sudo apt-get autoclean -y
time sudo apt-get autoremove -y
time sudo rm -rf /var/lib/apt/lists/*
if [[ "$RUNNER_OS" == "macOS" ]]; then
echo 'Clean Homebrew cache'
brew cleanup -s
rm -rf "$(brew --cache)"
elif [[ "$RUNNER_OS" == "Linux" ]]; then
echo 'Clean apt cache'
sudo apt-get clean -y
sudo apt-get autoclean -y
sudo apt-get autoremove -y
sudo rm -rf /var/lib/apt/lists/*
fi

- name: Cleanup Docker
shell: bash
run: |
echo 'Cleanup Docker'
time docker system prune -f
time docker volume prune -f
time docker image prune -f
time docker container prune -f
time docker network prune -f
if [[ "$RUNNER_OS" == "Linux" ]] || [[ "$RUNNER_OS" == "macOS" ]]; then
echo 'Cleanup Docker'
docker system prune -f
docker volume prune -f
docker image prune -f
docker container prune -f
docker network prune -f
fi

- name: Reclaim Disk Space
shell: bash
run: |
removeIfExists() {
local file=$1
[[ -e $file ]] && time sudo rm -rf $1 || true
[[ -e $file ]] && sudo rm -rf $1 || true
}

removeIfExists /usr/share/dotnet
removeIfExists /usr/share/swift
removeIfExists /usr/local/lib/android
removeIfExists /opt/ghc
removeIfExists /opt/pipx

removeIfExists /opt/hostedtoolcache/CodeQL
removeIfExists /imagegeneration/installers/go-*
removeIfExists /imagegeneration/installers/node-*
removeIfExists /imagegeneration/installers/python-*

removeIfExists /home/runner/work/_temp/*
removeIfExists /home/runner/work/_tool/*
removeIfExists /home/runner/work/_config/*
if [[ "$RUNNER_OS" == "macOS" ]]; then
HOME_DIR="/Users/runner"
removeIfExists ${HOME_DIR}/.cache
removeIfExists ${HOME_DIR}/Library/Logs
removeIfExists ${HOME_DIR}/Library/Caches
removeIfExists ${HOME_DIR}/work/_temp
removeIfExists ${HOME_DIR}/.cargo/bin/cargo
removeIfExists ${HOME_DIR}/.ghcup/bin/ghc
removeIfExists ${HOME_DIR}/Library/Android/sdk

removeIfExists /usr/local/bin/pipx
removeIfExists /usr/bin/swift
removeIfExists /usr/local/bin/dotnet
removeIfExists /usr/local/Caskroom/
elif [[ "$RUNNER_OS" == "Linux" ]]; then
HOME_DIR="/home/runner"
removeIfExists /usr/share/dotnet
removeIfExists /usr/share/swift
removeIfExists /usr/local/lib/android
removeIfExists /opt/ghc
removeIfExists /opt/pipx

- name: Show Disk Usage
removeIfExists /opt/hostedtoolcache/CodeQL
removeIfExists /imagegeneration/installers/go-*
removeIfExists /imagegeneration/installers/node-*
removeIfExists /imagegeneration/installers/python-*

removeIfExists ${HOME_DIR}/work/_temp/*
removeIfExists ${HOME_DIR}/work/_tool/*
removeIfExists ${HOME_DIR}/work/_config/*
fi

- name: Show Final Disk Usage
shell: bash
run: |
echo "# df -h"
echo '# Final Disk Usage'
df -h

echo '# docker images'
docker images || true

echo '# du -sh /home/runner'
sudo du -sh /home/runner || true
if [[ "$RUNNER_OS" == "macOS" ]]; then
HOME_DIR="/Users/runner"
echo '# du -sh $HOME_DIR'
sudo du -sh $HOME_DIR || true
elif [[ "$RUNNER_OS" == "Linux" ]]; then
HOME_DIR="/home/runner"
echo '# docker images'
docker images || true
echo '# du -sh $HOME_DIR'
sudo du -sh $HOME_DIR || true
fi
55 changes: 7 additions & 48 deletions .github/actions/deploy-artifact-jfrog/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,61 +37,20 @@ runs:
steps:
- uses: actions/checkout@v4

- name: 'Set up JDK'
uses: actions/setup-java@v4
with:
java-version: 11
distribution: temurin
- name: Setup Java # Uses .sdkmanrc file
id: sdkman-java
uses: sdkman/sdkman-action@b1f9b696c79148b66d3d3a06f7ea801820318d0f

- name: Install xmllint
run: |
sudo apt-get update && sudo apt-get install -y libxml2-utils
shell: bash

- name: 'Get Date'
id: get-date
run: |
echo "date=$(/bin/date -u "+%Y-%m")" >> $GITHUB_OUTPUT
shell: bash

- name: Download Build Artifact
id: data-download
uses: dawidd6/action-download-artifact@v3.1.4
- uses: ./.github/actions/maven-job
with:
github_token: ${{ inputs.github-token }}
workflow_search: true
commit: ${{ github.sha }}
workflow_conclusion: success
search_artifacts: true
dry_run: true
name: maven-repo
path: .
if_no_artifact_found: warn

- name: 'Check if artifact exists'
id: check
run: |
build_artifact_exists=${{ steps.data-download.outputs.found_artifact }}
if [[ ${build_artifact_exists} == "true" ]]; then
run_id=`echo '${{ steps.data-download.outputs.artifacts }}' | jq -r '.[0].workflow_run.id'`
found_artifacts=true
echo "Artifact Run id: $run_id"
else
echo "No artifact found"
run_id="${{ github.run_id }}"
found_artifacts=false
fi
echo "run_id=$run_id" >> $GITHUB_OUTPUT
echo "found_artifacts=$found_artifacts" >> $GITHUB_OUTPUT
shell: bash
stage-name: "Deploy Artifacts Validate"
maven-args: "validate" # We don't need to build just get the repo and use validate to check everything exists

- name: 'Download Maven Repo'
uses: actions/download-artifact@v4
with:
run-id: ${{ steps.check.outputs.run_id }}
github-token: ${{ inputs.github-token }}
name: maven-repo
path: ~/.m2/repository

- uses: jfrog/setup-jfrog-cli@v4

Expand Down Expand Up @@ -213,7 +172,7 @@ runs:
echo "::endgroup::"
shell: bash

- name:
- name: 'JFrog CLI context'
env:
ARTIFACTORY_URL: ${{ inputs.artifactory-url || steps.maven-artifact-repository.outputs.url }}
ARTIFACTORY_ACCESS_TOKEN: ${{ inputs.artifactory-access-token }}
Expand Down
Loading