127 lines
4.8 KiB
YAML
127 lines
4.8 KiB
YAML
name: 'Build Backend'
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
repo_path:
|
|
description: 'Репозиторий'
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- devspc/devspace-apiregistry-generator-service
|
|
- devspc/devspace-gateway
|
|
- devspc/devspace-apiregistry-core-service
|
|
- devspc/devspace-selfkit-ui
|
|
default: devspc/devspace-apiregistry-generator-service
|
|
branch:
|
|
description: 'Ветка'
|
|
required: true
|
|
type: string
|
|
default: master
|
|
jobs:
|
|
deploy-dev:
|
|
name: 'Deploy to dev'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: 'Cloning'
|
|
env:
|
|
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
REPO_PATH: ${{ github.event.inputs.repo_path }}
|
|
BRANCH: ${{ github.event.inputs.branch }}
|
|
run: |
|
|
echo "Container ID: $(cat /proc/1/cgroup | grep docker)"
|
|
echo "Inside Docker: $(docker info >/dev/null 2>&1 && echo yes || echo no)"
|
|
pwd
|
|
mkdir -p ~/.gradle
|
|
mkdir -p ~/.ssh
|
|
ls -la ~/.ssh/ || echo "No .ssh dir"
|
|
echo "$SSH_KEY" > ~/.ssh/my_key
|
|
cat > ~/.ssh/config << 'EOF'
|
|
Host bitbucket.isb
|
|
HostName bitbucket.isb
|
|
User git
|
|
IdentityFile ~/.ssh/my_key
|
|
ProxyCommand socat - PROXY:192.168.76.142:%h:%p,proxyport=8077
|
|
StrictHostKeyChecking no
|
|
UserKnownHostsFile /dev/null
|
|
IdentitiesOnly yes
|
|
EOF
|
|
chmod 600 ~/.ssh/config
|
|
chmod 600 ~/.ssh/my_key
|
|
GIT_TERMINAL_PROMPT=0 git clone --single-branch --branch $BRANCH "ssh://git@bitbucket.isb:443/$REPO_PATH.git" .
|
|
cat > ~/.gradle/init.gradle.kts << 'EOF'
|
|
import java.net.URI
|
|
|
|
val OTP_REPO_PREFIX = "https://nexus.isb/repository/"
|
|
val MAVEN_CENTRAL = "https://repo.maven.apache.org/maven2/"
|
|
val GRADLE_PLUGIN_REPOSITORY = "https://plugins.gradle.org/m2/"
|
|
|
|
fun replaceRepository(repo: ArtifactRepository) {
|
|
if (repo !is MavenArtifactRepository) {
|
|
return
|
|
}
|
|
val sourceUrl = repo.url
|
|
when {
|
|
repo.url == URI("${OTP_REPO_PREFIX}central-mvn-proxy/") -> repo.url = URI(MAVEN_CENTRAL)
|
|
repo.url == URI("${OTP_REPO_PREFIX}pluginsgradle-mvn-proxy/") ->
|
|
repo.url = URI(GRADLE_PLUGIN_REPOSITORY)
|
|
repo.url.toString().startsWith(OTP_REPO_PREFIX) -> {
|
|
repo.url =
|
|
URI(
|
|
"http://192.168.76.117/repository/${repo.url.toString().removePrefix(OTP_REPO_PREFIX)}"
|
|
)
|
|
repo.isAllowInsecureProtocol = true
|
|
}
|
|
}
|
|
if (sourceUrl != repo.url) {
|
|
repo.isAllowInsecureProtocol = true
|
|
repo.credentials.username = ""
|
|
repo.credentials.password = ""
|
|
println("$sourceUrl => ${repo.url}")
|
|
}
|
|
}
|
|
|
|
val LOCAL_REPOSITORY = "file:/home/${System.getProperty("user.name")}/.m2/repository/"
|
|
|
|
gradle.settingsEvaluated {
|
|
pluginManagement
|
|
.repositories
|
|
.filterIsInstance<MavenArtifactRepository>()
|
|
.filter {
|
|
it.url == URI("https://nexus.isb/repository/pluginsgradle-mvn-proxy/") ||
|
|
it.url == URI("http://repo.xx/otp-pluginsgradle-mvn-proxy/")
|
|
}
|
|
.forEach {
|
|
pluginManagement.repositories.remove(it)
|
|
pluginManagement.repositories.add(0, it)
|
|
}
|
|
|
|
pluginManagement
|
|
.repositories
|
|
.filterIsInstance<MavenArtifactRepository>()
|
|
.filter { it.url == URI(LOCAL_REPOSITORY) }
|
|
.forEach {
|
|
pluginManagement.repositories.remove(it)
|
|
pluginManagement.repositories.add(0, it)
|
|
}
|
|
}
|
|
|
|
gradle.beforeSettings {
|
|
pluginManagement.repositories.configureEach { replaceRepository(this) }
|
|
dependencyResolutionManagement.repositories.configureEach { replaceRepository(this) }
|
|
allprojects {
|
|
repositories.configureEach { replaceRepository(this) }
|
|
}
|
|
}
|
|
EOF
|
|
ls
|
|
sed -i 's|distributionUrl=https://nexus.isb/repository/gradleorg-raw-proxy|distributionUrl=https://services.gradle.org/distributions|g' ./gradle/wrapper/gradle-wrapper.properties
|
|
cat ./gradle/wrapper/gradle-wrapper.properties
|
|
cat ~/.gradle/init.gradle.kts
|
|
- name: Cleanup temp files
|
|
if: always()
|
|
run: |
|
|
echo "🧹 Очистка временных файлов..."
|
|
rm -rf ~/.ssh/config
|
|
rm -rf ~/.ssh/my_key
|
|
rm -rf ~/.gradle/init.gradle.kts
|
|
echo "✅ Cleanup completed" |