Commit b2c73b56 authored by nanahira's avatar nanahira

Update Dockerfile, .gitlab-ci.yml files

parent 26cc4758
Pipeline #37544 failed with stages
in 27 seconds
stages: stages:
- build - build
- deploy - deploy
variables: variables:
GIT_DEPTH: "1" GIT_DEPTH: "1"
PREMAKE_VERSION: "5.0.0-beta6"
LIBEVENT_VERSION: "2.1.12-stable"
before_script: before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
.build-image: .build-image:
stage: build stage: build
script: script:
- docker build --pull -t $TARGET_IMAGE . - docker build --pull -t "$TARGET_IMAGE" \
- docker push $TARGET_IMAGE --build-arg BASE_IMAGE_TAG="$BASE_IMAGE_TAG" \
--build-arg PREMAKE_VERSION="$PREMAKE_VERSION" \
--build-arg LIBEVENT_VERSION="$LIBEVENT_VERSION" .
- docker push "$TARGET_IMAGE"
#########################
# Debian 11 Builds
#########################
build-x86: build-debian11-x86:
extends: .build-image extends: .build-image
tags: tags:
- docker - docker-noavx2
variables:
BASE_IMAGE_TAG: debian11
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-debian11-x86
build-debian11-arm:
extends: .build-image
tags:
- docker-arm
variables: variables:
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-x86 BASE_IMAGE_TAG: debian11
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-debian11-arm
#########################
# Debian 12 Builds
#########################
build-arm: build-debian12-x86:
extends: .build-image
tags:
- docker-noavx2
variables:
BASE_IMAGE_TAG: debian12
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-debian12-x86
build-debian12-arm:
extends: .build-image extends: .build-image
tags: tags:
- docker-arm - docker-arm
variables: variables:
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-arm BASE_IMAGE_TAG: debian12
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-debian12-arm
#########################
# Deploy (multi-arch manifest)
#########################
.deploy: .deploy-manifest:
stage: deploy stage: deploy
tags: tags:
- docker - docker
script: script:
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-x86 - docker pull "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-${BASE_TAG}-x86"
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-arm - docker pull "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-${BASE_TAG}-arm"
- docker manifest create $TARGET_IMAGE --amend $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-x86 --amend - docker manifest create "$TARGET_IMAGE" \
$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-arm --amend "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-${BASE_TAG}-x86" \
- docker manifest push $TARGET_IMAGE --amend "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-${BASE_TAG}-arm"
- docker manifest push "$TARGET_IMAGE"
deploy_latest: #########################
extends: .deploy # Deploy for master (debian11, debian12, latest)
#########################
deploy-master-debian11:
extends: .deploy-manifest
variables:
BASE_TAG: debian11
TARGET_IMAGE: $CI_REGISTRY_IMAGE:debian11
only:
- master
deploy-master-debian12:
extends: .deploy-manifest
variables:
BASE_TAG: debian12
TARGET_IMAGE: $CI_REGISTRY_IMAGE:debian12
only:
- master
deploy-master-latest:
extends: .deploy-manifest
variables: variables:
BASE_TAG: debian11
TARGET_IMAGE: $CI_REGISTRY_IMAGE:latest TARGET_IMAGE: $CI_REGISTRY_IMAGE:latest
only: only:
- master - master
deploy_branch: #########################
extends: .deploy # Deploy for non-master branches
#########################
deploy-branch-debian11:
extends: .deploy-manifest
variables:
BASE_TAG: debian11
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-debian11
deploy-branch-debian12:
extends: .deploy-manifest
variables:
BASE_TAG: debian12
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-debian12
deploy-branch-combined:
extends: .deploy-manifest
variables: variables:
BASE_TAG: debian11 # use debian11 images for multi-arch fallback
TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG TARGET_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
FROM git-registry.moenext.com/mycard/docker-runner-base:debian11 as premake-builder ARG BASE_IMAGE_TAG=debian11
ARG PREMAKE_VERSION=5.0.0-beta6
ARG LIBEVENT_VERSION=2.1.12-stable
FROM git-registry.moenext.com/mycard/docker-runner-base:${BASE_IMAGE_TAG} as premake-builder
ARG PREMAKE_VERSION
WORKDIR /usr/src WORKDIR /usr/src
RUN wget -O premake.zip https://github.com/premake/premake-core/releases/download/v5.0.0-beta6/premake-5.0.0-beta6-src.zip && \ RUN wget -O premake.zip https://github.com/premake/premake-core/releases/download/v${PREMAKE_VERSION}/premake-${PREMAKE_VERSION}-src.zip && \
7z x -y premake.zip && \ 7z x -y premake.zip && \
mv premake-5.0.0-beta6-src premake && \ mv premake-${PREMAKE_VERSION}-src premake && \
cd premake/build/gmake.unix && \ cd premake/build/gmake.unix && \
make -j$(nproc) make -j$(nproc)
FROM git-registry.moenext.com/mycard/docker-runner-base:debian11 as libevent-builder FROM git-registry.moenext.com/mycard/docker-runner-base:${BASE_IMAGE_TAG} as libevent-builder
ARG LIBEVENT_VERSION
WORKDIR /usr/src WORKDIR /usr/src
RUN wget -O - https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz | tar zfx - && \ RUN wget -O - https://github.com/libevent/libevent/releases/download/release-${LIBEVENT_VERSION}/libevent-${LIBEVENT_VERSION}.tar.gz | tar zfx - && \
cd libevent-2.1.12-stable && \ cd libevent-${LIBEVENT_VERSION} && \
./configure --prefix=/usr/share/libevent-stable --disable-openssl --enable-static=yes --enable-shared=no && \ ./configure --prefix=/usr/share/libevent-stable --disable-openssl --enable-static=yes --enable-shared=no && \
make -j$(nproc) && \ make -j$(nproc) && \
make install make install
FROM git-registry.moenext.com/mycard/docker-runner-base:debian11 FROM git-registry.moenext.com/mycard/docker-runner-base:${BASE_IMAGE_TAG}
RUN apt update && \ RUN apt update && \
apt -y install git build-essential libgl1-mesa-dev libglu-dev libxxf86vm-dev && \ apt -y install git build-essential libgl1-mesa-dev libglu-dev libxxf86vm-dev emscripten && \
rm -rf /var/lib/apt/lists/* /var/cache/* /tmp/* /var/tmp/* /var/log/* rm -rf /var/lib/apt/lists/* /var/cache/* /tmp/* /var/tmp/* /var/log/*
COPY --from=premake-builder /usr/src/premake/bin/release/premake5 /usr/bin/premake5 COPY --from=premake-builder /usr/src/premake/bin/release/premake5 /usr/bin/premake5
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment