blob: 01e536cdc5bedd5f6ebd4d6e2d2fa6caa0216056 [file] [log] [blame]
Mohammed Naser1de55192023-04-28 17:13:35 -04001VERSION --use-copy-link 0.7
Mohammed Naser8613c862023-04-24 17:26:51 -04002
Mohammed Naser1de55192023-04-28 17:13:35 -04003build.wheels:
Mohammed Naser7060df82023-12-29 15:12:17 -05004 FROM ./images/builder+image
Mohammed Naser8613c862023-04-24 17:26:51 -04005 COPY pyproject.toml poetry.lock ./
Mohammed Naser1de55192023-04-28 17:13:35 -04006 ARG --required only
7 RUN poetry export --only=${only} -f requirements.txt --without-hashes > requirements.txt
Mohammed Naser8613c862023-04-24 17:26:51 -04008 RUN pip wheel -r requirements.txt --wheel-dir=/wheels
9 SAVE ARTIFACT requirements.txt
10 SAVE ARTIFACT /wheels
Mohammed Naser1de55192023-04-28 17:13:35 -040011 SAVE IMAGE --cache-hint
Mohammed Naser8613c862023-04-24 17:26:51 -040012
Mohammed Naser1de55192023-04-28 17:13:35 -040013build.venv:
14 ARG --required only
15 FROM +build.wheels --only ${only}
Mohammed Naser8613c862023-04-24 17:26:51 -040016 RUN python3 -m venv /venv
17 ENV PATH=/venv/bin:$PATH
18 RUN pip install -r requirements.txt
Mohammed Naser1de55192023-04-28 17:13:35 -040019 SAVE IMAGE --cache-hint
20
21build.venv.dev:
22 FROM +build.venv --only main,dev
Mohammed Naser8613c862023-04-24 17:26:51 -040023 SAVE ARTIFACT /venv
24
Mohammed Naser1de55192023-04-28 17:13:35 -040025build.venv.runtime:
26 FROM +build.venv --only main
27 SAVE ARTIFACT /venv
28
29build.collections:
30 FROM +build.venv.runtime
31 COPY charts /src/charts
32 COPY meta /src/meta
33 COPY playbooks /src/playbooks
34 COPY plugins /src/plugins
35 COPY roles /src/roles
36 COPY galaxy.yml /src/galaxy.yml
37 RUN ansible-galaxy collection install --collections-path /usr/share/ansible/collections /src
38 SAVE ARTIFACT /usr/share/ansible/collections
39 SAVE IMAGE --cache-hint
40
41image:
Mohammed Naser7060df82023-12-29 15:12:17 -050042 FROM ./images/base+image
Mohammed Naser1de55192023-04-28 17:13:35 -040043 ENV ANSIBLE_PIPELINING=True
Mohammed Naser7060df82023-12-29 15:12:17 -050044 DO ./images+APT_INSTALL --packages "rsync openssh-client"
Mohammed Nasere720d782023-07-10 15:57:21 -040045 COPY +build.venv.runtime/venv /venv
46 ENV PATH=/venv/bin:$PATH
47 COPY +build.collections/ /usr/share/ansible
Mohammed Naser1de55192023-04-28 17:13:35 -040048 ARG tag=latest
Mohammed Naserccc70cc2023-04-28 22:20:34 +000049 SAVE IMAGE --push ghcr.io/vexxhost/atmosphere:${tag}
Mohammed Naser8613c862023-04-24 17:26:51 -040050
Mohammed Naser7060df82023-12-29 15:12:17 -050051images:
52 BUILD ./images/cluster-api-provider-openstack+image
53
Mohammed Naser8613c862023-04-24 17:26:51 -040054pin-images:
Mohammed Naser1de55192023-04-28 17:13:35 -040055 FROM +build.venv.dev
ricolinb8ab0172023-06-01 15:41:02 +080056 COPY roles/defaults/vars/main.yml /defaults.yml
Mohammed Naser8613c862023-04-24 17:26:51 -040057 COPY build/pin-images.py /usr/local/bin/pin-images
58 RUN /usr/local/bin/pin-images /defaults.yml /pinned.yml
ricolinb8ab0172023-06-01 15:41:02 +080059 SAVE ARTIFACT /pinned.yml AS LOCAL roles/defaults/vars/main.yml
Mohammed Naserd03bba32023-04-25 12:54:58 +000060
61gh:
62 FROM alpine:3
63 RUN apk add --no-cache github-cli
64
65trigger-image-sync:
66 FROM +gh
67 ARG --required project
68 RUN --secret GITHUB_TOKEN gh workflow run --repo vexxhost/docker-openstack-${project} sync.yml
Mohammed Naser0c428872023-09-21 12:59:20 +000069
70image-sync:
71 FROM golang:1.19
72 ARG --required project
73 WORKDIR /src
74 COPY . /src
75 RUN --secret GITHUB_TOKEN go run ./cmd/atmosphere-ci image repo sync ${project}