forked from DSpace/DSpace
-
Notifications
You must be signed in to change notification settings - Fork 1
127 lines (119 loc) · 5.82 KB
/
Copy pathdocker.yml
File metadata and controls
127 lines (119 loc) · 5.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# DSpace Docker image build for hub.docker.com
name: Docker images
# Run this Build for all pushes to 'dtq-dev-9-base' (the CLARIN/DSpace 9 base branch).
# Also run for PRs to ensure PR doesn't break Docker build process (PRs build, but do not push).
# NOTE: uses the "reusable-docker-build.yml" from the 'dtq-dev' branch to actually build each of the
# Docker images. That is the same reusable workflow which builds our 'dtq-dev' and 'customer/*' images,
# and it pushes straight to hub.docker.com/u/dataquest. The vanilla DSpace copy of
# "reusable-docker-build.yml" that lives on this branch is NOT usable here: it builds via
# 'ghcr.io/<image_name>', which resolves to 'ghcr.io/dataquest/...' -- a namespace this org does not own.
on:
push:
branches:
- dtq-dev-9-base
pull_request:
workflow_dispatch:
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
####################################################
# Build/Push the 'dataquest/dspace-dependencies' image.
# This image is used by all other DSpace build jobs.
####################################################
dspace-dependencies:
# Ensure this job never runs on forked repos. It's only executed for 'dataquest-dev/DSpace'
if: github.repository == 'dataquest-dev/dspace'
uses: dataquest-dev/DSpace/.github/workflows/reusable-docker-build.yml@dtq-dev
with:
build_id: dspace-dependencies
image_name: dataquest/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
#######################################
dspace:
# Ensure this job never runs on forked repos. It's only executed for 'dataquest-dev/DSpace'
if: github.repository == 'dataquest-dev/dspace'
# Must run after 'dspace-dependencies' job above
needs: dspace-dependencies
uses: dataquest-dev/DSpace/.github/workflows/reusable-docker-build.yml@dtq-dev
with:
build_id: dspace-prod
image_name: dataquest/dspace
dockerfile_path: ./Dockerfile
run_python_version_script: true
# Must match 'build.version.file.path' in dspace/config/clarin-dspace.cfg
python_version_script_dest: dspace/config/VERSION_D.txt
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
#############################################################
# Build/Push the 'dataquest/dspace' image ('-test' tag)
#############################################################
dspace-test:
# Ensure this job never runs on forked repos. It's only executed for 'dataquest-dev/DSpace'
if: github.repository == 'dataquest-dev/dspace'
# Must run after 'dspace-dependencies' job above
needs: dspace-dependencies
uses: dataquest-dev/DSpace/.github/workflows/reusable-docker-build.yml@dtq-dev
with:
build_id: dspace-test
image_name: dataquest/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 'dataquest/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
###########################################
dspace-cli:
# Ensure this job never runs on forked repos. It's only executed for 'dataquest-dev/DSpace'
if: github.repository == 'dataquest-dev/dspace'
# Must run after 'dspace-dependencies' job above
needs: dspace-dependencies
uses: dataquest-dev/DSpace/.github/workflows/reusable-docker-build.yml@dtq-dev
with:
build_id: dspace-cli
image_name: dataquest/dspace-cli
dockerfile_path: ./Dockerfile.cli
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###########################################
# Build/Push the 'dataquest/dspace-solr' image
###########################################
dspace-solr:
# Ensure this job never runs on forked repos. It's only executed for 'dataquest-dev/DSpace'
if: github.repository == 'dataquest-dev/dspace'
uses: dataquest-dev/DSpace/.github/workflows/reusable-docker-build.yml@dtq-dev
with:
build_id: dspace-solr
image_name: dataquest/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 }}
########################################################
# Build/Push the 'dataquest/dspace-postgres-loadsql' image
########################################################
dspace-postgres-loadsql:
# Ensure this job never runs on forked repos. It's only executed for 'dataquest-dev/DSpace'
if: github.repository == 'dataquest-dev/dspace'
uses: dataquest-dev/DSpace/.github/workflows/reusable-docker-build.yml@dtq-dev
with:
build_id: dspace-postgres-loadsql
image_name: dataquest/dspace-postgres-loadsql
# Must build out of subdirectory to have access to install script.
# NOTE: this context will build the image based on the Dockerfile in the specified directory
dockerfile_context: ./dspace/src/main/docker/dspace-postgres-loadsql/
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}