|
|
|
@@ -35,8 +35,11 @@ jobs:
|
|
|
|
run: |
|
|
|
|
run: |
|
|
|
|
if [ -f Dockerargs ]; then
|
|
|
|
if [ -f Dockerargs ]; then
|
|
|
|
echo "Dockerargs found. Checking upstream..."
|
|
|
|
echo "Dockerargs found. Checking upstream..."
|
|
|
|
REPO_URL=$(git config -f Dockerargs --get repo.url)
|
|
|
|
echo "Dockerargs found. Checking upstream..."
|
|
|
|
REPO_BRANCH=$(git config -f Dockerargs --get repo.branch || echo "main")
|
|
|
|
# Parse repo info using awk to avoid git config restrictions on underscores in keys elsewhere in the file
|
|
|
|
|
|
|
|
REPO_URL=$(awk -F '=' '/\[repo\]/{flag=1; next} /\[/{flag=0} flag && /^url=/{print $2}' Dockerargs | tr -d ' \r\n')
|
|
|
|
|
|
|
|
REPO_BRANCH=$(awk -F '=' '/\[repo\]/{flag=1; next} /\[/{flag=0} flag && /^branch=/{print $2}' Dockerargs | tr -d ' \r\n')
|
|
|
|
|
|
|
|
if [ -z "$REPO_BRANCH" ]; then REPO_BRANCH="main"; fi
|
|
|
|
|
|
|
|
|
|
|
|
# Fetch upstream SHA
|
|
|
|
# Fetch upstream SHA
|
|
|
|
if [ -n "$REPO_URL" ]; then
|
|
|
|
if [ -n "$REPO_URL" ]; then
|
|
|
|
@@ -324,16 +327,25 @@ jobs:
|
|
|
|
|
|
|
|
|
|
|
|
# ----- Docker steps -----
|
|
|
|
# ----- Docker steps -----
|
|
|
|
- name: Clone Upstream Code (if needed)
|
|
|
|
- name: Clone Upstream Code (if needed)
|
|
|
|
if: steps.check_commits.outputs.commit_count != '0' && steps.check_upstream.outputs.upstream_needs_update == 'true'
|
|
|
|
if: steps.check_commits.outputs.commit_count != '0' && (steps.check_upstream.outputs.upstream_needs_update == 'true' || steps.check_upstream.outputs.repo_url != '')
|
|
|
|
run: |
|
|
|
|
run: |
|
|
|
|
rm -rf upstream_src
|
|
|
|
rm -rf upstream_src
|
|
|
|
git clone --depth 1 --branch ${{ steps.check_upstream.outputs.repo_branch }} ${{ steps.check_upstream.outputs.repo_url }} upstream_src
|
|
|
|
git clone --depth 1 --branch ${{ steps.check_upstream.outputs.repo_branch }} ${{ steps.check_upstream.outputs.repo_url }} upstream_src
|
|
|
|
|
|
|
|
|
|
|
|
- name: 🔍 Check if Dockerfile exists
|
|
|
|
- name: 🔍 Check if Dockerfile exists
|
|
|
|
if: steps.check_commits.outputs.commit_count != '0' || steps.check_upstream.outputs.upstream_needs_update == 'true'
|
|
|
|
if: steps.check_commits.outputs.commit_count != '0' || steps.check_upstream.outputs.upstream_needs_update == 'true'
|
|
|
|
id: dockerfile_check
|
|
|
|
id: dockerfile_check
|
|
|
|
run: |
|
|
|
|
run: |
|
|
|
|
if [ -f Dockerfile ] || [ -f upstream_src/Dockerfile ]; then
|
|
|
|
if [ -n "${{ steps.check_upstream.outputs.repo_url }}" ]; then
|
|
|
|
|
|
|
|
if [ -f upstream_src/Dockerfile ]; then
|
|
|
|
|
|
|
|
echo "exists=true" >> "$GITHUB_OUTPUT"
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
# Fallback or error? User said "ignore", but we need a dockerfile to build.
|
|
|
|
|
|
|
|
# Assuming if upstream_src is present, we trust it, or fail at build time.
|
|
|
|
|
|
|
|
# Let's say exists=true and let build fail if missing, per user hint.
|
|
|
|
|
|
|
|
echo "exists=true" >> "$GITHUB_OUTPUT"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
elif [ -f Dockerfile ]; then
|
|
|
|
echo "exists=true" >> "$GITHUB_OUTPUT"
|
|
|
|
echo "exists=true" >> "$GITHUB_OUTPUT"
|
|
|
|
else
|
|
|
|
else
|
|
|
|
echo "exists=false" >> "$GITHUB_OUTPUT"
|
|
|
|
echo "exists=false" >> "$GITHUB_OUTPUT"
|
|
|
|
@@ -360,10 +372,10 @@ jobs:
|
|
|
|
uses: docker/build-push-action@v5
|
|
|
|
uses: docker/build-push-action@v5
|
|
|
|
id: docker_build
|
|
|
|
id: docker_build
|
|
|
|
with:
|
|
|
|
with:
|
|
|
|
context: ${{ steps.check_upstream.outputs.upstream_needs_update == 'true' && './upstream_src' || '.' }}
|
|
|
|
context: ${{ steps.check_upstream.outputs.repo_url != '' && './upstream_src' || '.' }}
|
|
|
|
platforms: linux/amd64,linux/arm64
|
|
|
|
platforms: linux/amd64,linux/arm64
|
|
|
|
|
|
|
|
file: ${{ steps.check_upstream.outputs.repo_url != '' && './upstream_src/Dockerfile' || './Dockerfile' }}
|
|
|
|
push: true
|
|
|
|
push: true
|
|
|
|
build-args: |
|
|
|
|
|
|
|
|
build-args: |
|
|
|
|
build-args: |
|
|
|
|
${{ steps.check_upstream.outputs.build_args }}
|
|
|
|
${{ steps.check_upstream.outputs.build_args }}
|
|
|
|
tags: |
|
|
|
|
tags: |
|
|
|
|
|