From 69ddfe131155462d3f421875e368c0f9177257f0 Mon Sep 17 00:00:00 2001 From: MajoBerger Date: Wed, 21 Feb 2024 15:16:41 +0100 Subject: [PATCH] steppify docker.yml action to be able to add more steps --- .github/workflows/docker.yml | 159 ++++++++++++++++++----------------- 1 file changed, 83 insertions(+), 76 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 4268ca013761..bd0e78a26cf4 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,14 +22,15 @@ jobs: dspace-dependencies: # Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace' if: github.repository == 'dataquest-dev/dspace' - uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace-dependencies - image_name: dspace/dspace-dependencies - dockerfile_path: ./Dockerfile.dependencies - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + steps: + uses: ./.github/workflows/reusable-docker-build.yml + with: + build_id: dspace-dependencies + image_name: dspace/dspace-dependencies + dockerfile_path: ./Dockerfile.dependencies + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} ####################################### # Build/Push the 'dataquest/dspace' image @@ -37,20 +38,21 @@ jobs: dspace: # Ensure this job never runs on forked repos. It's only executed for 'dataquest/dspace' if: github.repository == 'dataquest-dev/dspace' - # Must run after 'dspace-dependencies' job above + # Must run after 'dspace-dependencies' job above needs: dspace-dependencies - uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace - image_name: dspace/dspace - dockerfile_path: ./Dockerfile - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} - # Enable redeploy of sandbox & demo if the branch for this image matches the deployment branch of - # these sites as specified in reusable-docker-build.xml - REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_URL }} - REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_URL }} + steps: + uses: ./.github/workflows/reusable-docker-build.yml + with: + build_id: dspace + image_name: dspace/dspace + dockerfile_path: ./Dockerfile + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + # Enable redeploy of sandbox & demo if the branch for this image matches the deployment branch of + # these sites as specified in reusable-docker-build.xml + REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_URL }} + REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_URL }} ############################################################# # Build/Push the 'dataquest/dspace' image ('-test' tag) @@ -60,17 +62,18 @@ jobs: if: github.repository == 'dataquest-dev/dspace' # Must run after 'dspace-dependencies' job above needs: dspace-dependencies - uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace-test - image_name: dspace/dspace - dockerfile_path: ./Dockerfile.test - # As this is a test/development image, its tags are all suffixed with "-test". Otherwise, it uses the same - # tagging logic as the primary 'dspace/dspace' image above. - tags_flavor: suffix=-test - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + steps: + uses: ./.github/workflows/reusable-docker-build.yml + with: + build_id: dspace-test + image_name: dspace/dspace + dockerfile_path: ./Dockerfile.test + # As this is a test/development image, its tags are all suffixed with "-test". Otherwise, it uses the same + # tagging logic as the primary 'dspace/dspace' image above. + tags_flavor: suffix=-test + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} ########################################### # Build/Push the 'dataquest/dspace-cli' image @@ -80,14 +83,15 @@ jobs: if: github.repository == 'dataquest-dev/dspace' # Must run after 'dspace-dependencies' job above needs: dspace-dependencies - uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace-cli - image_name: dspace/dspace-cli - dockerfile_path: ./Dockerfile.cli - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + steps: + uses: ./.github/workflows/reusable-docker-build.yml + with: + build_id: dspace-cli + image_name: dspace/dspace-cli + dockerfile_path: ./Dockerfile.cli + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} ########################################### @@ -97,19 +101,20 @@ jobs: # Ensure this job never runs on forked repos. It's only executed for 'dataquest/dspace' if: github.repository == 'dataquest-dev/dspace' uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace-solr - image_name: dspace/dspace-solr - dockerfile_path: ./dspace/src/main/docker/dspace-solr/Dockerfile - # Must pass solrconfigs to the Dockerfile so that it can find the required Solr config files - dockerfile_additional_contexts: 'solrconfigs=./dspace/solr/' - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} - # Enable redeploy of sandbox & demo SOLR instance whenever dspace-solr image changes for deployed branch. - # These URLs MUST use different secrets than 'dspace/dspace' image build above as they are deployed separately. - REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_SOLR_URL }} - REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_SOLR_URL }} + steps: + with: + build_id: dspace-solr + image_name: dspace/dspace-solr + dockerfile_path: ./dspace/src/main/docker/dspace-solr/Dockerfile + # Must pass solrconfigs to the Dockerfile so that it can find the required Solr config files + dockerfile_additional_contexts: 'solrconfigs=./dspace/solr/' + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + # Enable redeploy of sandbox & demo SOLR instance whenever dspace-solr image changes for deployed branch. + # These URLs MUST use different secrets than 'dspace/dspace' image build above as they are deployed separately. + REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_SOLR_URL }} + REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_SOLR_URL }} ########################################################### @@ -118,16 +123,17 @@ jobs: dspace-postgres-pgcrypto: # Ensure this job never runs on forked repos. It's only executed for 'dataquest/dspace' if: github.repository == 'dataquest-dev/dspace' - uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace-postgres-pgcrypto - image_name: dspace/dspace-postgres-pgcrypto - # Must build out of subdirectory to have access to install script for pgcrypto. - # NOTE: this context will build the image based on the Dockerfile in the specified directory - dockerfile_context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/ - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + steps: + uses: ./.github/workflows/reusable-docker-build.yml + with: + build_id: dspace-postgres-pgcrypto + image_name: dspace/dspace-postgres-pgcrypto + # Must build out of subdirectory to have access to install script for pgcrypto. + # NOTE: this context will build the image based on the Dockerfile in the specified directory + dockerfile_context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/ + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} ######################################################################## # Build/Push the 'dataquest/dspace-postgres-pgcrypto' image (-loadsql tag) @@ -135,16 +141,17 @@ jobs: dspace-postgres-pgcrypto-loadsql: # Ensure this job never runs on forked repos. It's only executed for 'dataquest/dspace' if: github.repository == 'dataquest-dev/dspace' - uses: ./.github/workflows/reusable-docker-build.yml - with: - build_id: dspace-postgres-pgcrypto-loadsql - image_name: dspace/dspace-postgres-pgcrypto - # Must build out of subdirectory to have access to install script for pgcrypto. - # NOTE: this context will build the image based on the Dockerfile in the specified directory - dockerfile_context: ./dspace/src/main/docker/dspace-postgres-pgcrypto-curl/ - # Suffix all tags with "-loadsql". Otherwise, it uses the same - # tagging logic as the primary 'dspace/dspace-postgres-pgcrypto' image above. - tags_flavor: suffix=-loadsql - secrets: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} \ No newline at end of file + steps: + uses: ./.github/workflows/reusable-docker-build.yml + with: + build_id: dspace-postgres-pgcrypto-loadsql + image_name: dspace/dspace-postgres-pgcrypto + # Must build out of subdirectory to have access to install script for pgcrypto. + # NOTE: this context will build the image based on the Dockerfile in the specified directory + dockerfile_context: ./dspace/src/main/docker/dspace-postgres-pgcrypto-curl/ + # Suffix all tags with "-loadsql". Otherwise, it uses the same + # tagging logic as the primary 'dspace/dspace-postgres-pgcrypto' image above. + tags_flavor: suffix=-loadsql + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}