forked from TrueCloudLab/action-env
Compare commits
10 commits
976af216c6
...
28cb112243
Author | SHA1 | Date | |
---|---|---|---|
28cb112243 | |||
eb9cae2f79 | |||
18d7a6e0ae | |||
d837dacfd1 | |||
b9ee619374 | |||
1b4e256d1d | |||
a3b7e14413 | |||
ab35bf6f37 | |||
e128ea6fdd | |||
22d46bfb6f |
6 changed files with 46 additions and 18 deletions
|
@ -14,6 +14,8 @@ jobs:
|
||||||
- openjdk-11-maven-3.8.6
|
- openjdk-11-maven-3.8.6
|
||||||
- python-3.11
|
- python-3.11
|
||||||
- python-3.13
|
- python-3.13
|
||||||
|
env:
|
||||||
|
STORAGE_DRIVER: vfs
|
||||||
steps:
|
steps:
|
||||||
- name: Clone git repo
|
- name: Clone git repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
@ -26,18 +28,26 @@ jobs:
|
||||||
id: changed
|
id: changed
|
||||||
|
|
||||||
- name: Install Buildah
|
- name: Install Buildah
|
||||||
run: apt update; apt install -y buildah
|
run: |-
|
||||||
if: steps.changed.outputs.any_changed == 'true'
|
apt update; apt install -y buildah
|
||||||
|
|
||||||
|
# STORAGE_DRIVER variable is ignored if this file does not exist
|
||||||
|
touch /etc/containers/storage.conf
|
||||||
|
if: >-
|
||||||
|
github.event_name == 'workflow_dispatch'
|
||||||
|
|| steps.changed.outputs.any_changed == 'true'
|
||||||
|
|
||||||
- name: Build OCI image
|
- name: Build OCI image
|
||||||
run: make ${{matrix.tag}}
|
run: make ${{matrix.tag}}
|
||||||
if: steps.changed.outputs.any_changed == 'true'
|
if: >-
|
||||||
|
github.event_name == 'workflow_dispatch'
|
||||||
|
|| steps.changed.outputs.any_changed == 'true'
|
||||||
|
|
||||||
- name: Push image to OCI registry
|
- name: Push image to OCI registry
|
||||||
run: make ${{matrix.tag}} PUSH=y
|
run: make push-${{matrix.tag}}
|
||||||
if: >-
|
if: >-
|
||||||
steps.changed.outputs.any_changed == 'true'
|
github.ref == 'refs/heads/master' &&
|
||||||
&& github.ref == 'refs/heads/master'
|
(github.event_name == 'workflow_dispatch' ||
|
||||||
&& github.event_name == 'push'
|
(steps.changed.outputs.any_changed == 'true' && github.event_name == 'push'))
|
||||||
env:
|
env:
|
||||||
REGISTRY_PASSWORD: ${secrets.REGISTRY_PASSWORD}
|
REGISTRY_PASSWORD: ${{secrets.REGISTRY_PASSWORD}}
|
||||||
|
|
16
Makefile
16
Makefile
|
@ -1,11 +1,9 @@
|
||||||
PUSH?=
|
|
||||||
|
|
||||||
REGISTRY?=git.frostfs.info
|
REGISTRY?=git.frostfs.info
|
||||||
REGISTRY_NAMESPACE?=truecloudlab
|
REGISTRY_NAMESPACE?=truecloudlab
|
||||||
REGISTRY_USER?=$(REGISTRY_NAMESPACE)
|
REGISTRY_USER?=$(REGISTRY_NAMESPACE)
|
||||||
REGISTRY_PASSWORD?=
|
REGISTRY_PASSWORD?=
|
||||||
|
|
||||||
IMAGE=$(REGISTRY)/$(REGISTRY_NAMESPACE)/env
|
IMAGE?=$(REGISTRY)/$(REGISTRY_NAMESPACE)/env
|
||||||
|
|
||||||
TAGS=$(patsubst %/.,%,$(wildcard */.))
|
TAGS=$(patsubst %/.,%,$(wildcard */.))
|
||||||
.PHONY: $(TAGS)
|
.PHONY: $(TAGS)
|
||||||
|
@ -13,8 +11,10 @@ $(TAGS):
|
||||||
buildah images
|
buildah images
|
||||||
cd $@ && buildah bud --tag $(IMAGE):$@ .
|
cd $@ && buildah bud --tag $(IMAGE):$@ .
|
||||||
buildah images
|
buildah images
|
||||||
ifneq (,$(PUSH))
|
|
||||||
echo $$REGISTRY_PASSWORD | buildah login --username $(REGISTRY_USER) --password-stdin $(REGISTRY)
|
PUSH=$(foreach tag,$(TAGS),push-$(tag))
|
||||||
buildah push --rm $(IMAGE):$@ docker://$(IMAGE):$@
|
$(PUSH):
|
||||||
buildah logout
|
echo -n "$$REGISTRY_PASSWORD" | wc
|
||||||
endif
|
echo "$$REGISTRY_PASSWORD" | buildah login --username $(REGISTRY_USER) --password-stdin $(REGISTRY)
|
||||||
|
buildah push --rm $(IMAGE):$(patsubst push-%,%,$@) docker://$(IMAGE):$(patsubst push-%,%,$@)
|
||||||
|
buildah logout $(REGISTRY)
|
||||||
|
|
14
README.md
14
README.md
|
@ -5,3 +5,17 @@ is available by default. This is not the case in Forgejo Actions, and we need
|
||||||
to add Node.js to community provided images explicitly.
|
to add Node.js to community provided images explicitly.
|
||||||
|
|
||||||
This repo contains Dockerfile for images used by TrueCloudLab.
|
This repo contains Dockerfile for images used by TrueCloudLab.
|
||||||
|
|
||||||
|
Images are published to [our registry](https://git.frostfs.info/TrueCloudLab/-/packages/container/env/versions)
|
||||||
|
|
||||||
|
## Modifying container images
|
||||||
|
|
||||||
|
Prepare a pull request with a modified or entirely new Dockerfile.
|
||||||
|
The image will get built and published after PR is merged to master.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
Images for Forgejo Actions must contain:
|
||||||
|
|
||||||
|
- Node.js
|
||||||
|
- Git
|
||||||
|
|
4
dotnet-8.0/Dockerfile
Normal file
4
dotnet-8.0/Dockerfile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
FROM docker.io/node:20-bookworm-slim as node
|
||||||
|
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||||
|
COPY --from=node /usr/local /usr/local
|
||||||
|
COPY --from=node /opt /opt
|
|
@ -1,4 +1,4 @@
|
||||||
FROM docker.io/node:20-bookworm-slim as node
|
FROM docker.io/node:20-bookworm-slim as node
|
||||||
FROM docker.io/python:3.11-slim-bookworm
|
FROM docker.io/python:3.11-bookworm
|
||||||
COPY --from=node /usr/local /usr/local
|
COPY --from=node /usr/local /usr/local
|
||||||
COPY --from=node /opt /opt
|
COPY --from=node /opt /opt
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM docker.io/node:20-bookworm-slim as node
|
FROM docker.io/node:20-bookworm-slim as node
|
||||||
FROM docker.io/python:3.13-slim-bookworm
|
FROM docker.io/python:3.13-bookworm
|
||||||
COPY --from=node /usr/local /usr/local
|
COPY --from=node /usr/local /usr/local
|
||||||
COPY --from=node /opt /opt
|
COPY --from=node /opt /opt
|
||||||
|
|
Loading…
Reference in a new issue