mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-08 10:34:25 +00:00
Ensure non-PRs run image build twice. First for a DockerHub image, then to export a local tarball. Since these are different image types they cannot be combined
This commit is contained in:
41
.github/workflows/reusable-docker-build.yml
vendored
41
.github/workflows/reusable-docker-build.yml
vendored
@@ -151,23 +151,10 @@ jobs:
|
|||||||
context: ${{ inputs.dockerfile_context }}
|
context: ${{ inputs.dockerfile_context }}
|
||||||
file: ${{ inputs.dockerfile_path }}
|
file: ${{ inputs.dockerfile_path }}
|
||||||
platforms: ${{ matrix.arch }}
|
platforms: ${{ matrix.arch }}
|
||||||
|
push: true
|
||||||
# Use tags / labels provided by 'docker/metadata-action' above
|
# Use tags / labels provided by 'docker/metadata-action' above
|
||||||
tags: ${{ steps.meta_build.outputs.tags }}
|
tags: ${{ steps.meta_build.outputs.tags }}
|
||||||
labels: ${{ steps.meta_build.outputs.labels }}
|
labels: ${{ steps.meta_build.outputs.labels }}
|
||||||
# Export image to both Docker registry & to a local TAR file
|
|
||||||
outputs: |
|
|
||||||
registry
|
|
||||||
type=docker,dest=/tmp/${{ inputs.build_id }}.tar
|
|
||||||
|
|
||||||
# Upload the local docker image (in TAR file) to a build Artifact
|
|
||||||
- name: Upload local image to artifact
|
|
||||||
if: ${{ ! matrix.isPr }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: docker-image-${{ inputs.build_id }}-${{ env.ARCH_NAME }}
|
|
||||||
path: /tmp/${{ inputs.build_id }}.tar
|
|
||||||
if-no-files-found: error
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
# Export the digest of Docker build locally (for non PRs only)
|
# Export the digest of Docker build locally (for non PRs only)
|
||||||
- name: Export Docker build digest
|
- name: Export Docker build digest
|
||||||
@@ -187,6 +174,32 @@ jobs:
|
|||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
|
# Build local image (again) and store in a TAR file in /tmp directory
|
||||||
|
# NOTE: This cannot be combined with push to DockerHub registry above as it's a different type of output.
|
||||||
|
- name: Build and push image to local image
|
||||||
|
if: ${{ ! matrix.isPr }}
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
build-contexts: |
|
||||||
|
${{ inputs.dockerfile_additional_contexts }}
|
||||||
|
context: ${{ inputs.dockerfile_context }}
|
||||||
|
file: ${{ inputs.dockerfile_path }}
|
||||||
|
platforms: ${{ matrix.arch }}
|
||||||
|
tags: ${{ steps.meta_build.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta_build.outputs.labels }}
|
||||||
|
# Export image to a local TAR file
|
||||||
|
outputs: type=docker,dest=/tmp/${{ inputs.build_id }}.tar
|
||||||
|
|
||||||
|
# Upload the local docker image (in TAR file) to a build Artifact
|
||||||
|
- name: Upload local image to artifact
|
||||||
|
if: ${{ ! matrix.isPr }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: docker-image-${{ inputs.build_id }}-${{ env.ARCH_NAME }}
|
||||||
|
path: /tmp/${{ inputs.build_id }}.tar
|
||||||
|
if-no-files-found: error
|
||||||
|
retention-days: 1
|
||||||
|
|
||||||
# If this build is NOT a PR and passed in a REDEPLOY_SANDBOX_URL secret,
|
# If this build is NOT a PR and passed in a REDEPLOY_SANDBOX_URL secret,
|
||||||
# Then redeploy https://sandbox.dspace.org if this build is for our deployment architecture and 'main' branch.
|
# Then redeploy https://sandbox.dspace.org if this build is for our deployment architecture and 'main' branch.
|
||||||
- name: Redeploy sandbox.dspace.org (based on main branch)
|
- name: Redeploy sandbox.dspace.org (based on main branch)
|
||||||
|
Reference in New Issue
Block a user