Import OSCW runner
ci/woodpecker/push/build Pipeline was successful
Details
ci/woodpecker/push/build Pipeline was successful
Details
This commit is contained in:
commit
b9cfdb1fd5
|
@ -0,0 +1,11 @@
|
|||
pipeline:
|
||||
build:
|
||||
image: codingworkshop/oscw-runner:latest
|
||||
secrets:
|
||||
- OSCW_DOCKERHUB_USERNAME
|
||||
- OSCW_DOCKERHUB_PASSWORD
|
||||
commands:
|
||||
- echo $OSCW_DOCKERHUB_PASSWORD | docker login -u $OSCW_DOCKERHUB_USERNAME --password-stdin
|
||||
- docker build -t codingworkshop/oscw-runner:latest .
|
||||
- docker push codingworkshop/oscw-runner:latest
|
||||
- docker image prune -af
|
|
@ -0,0 +1,41 @@
|
|||
FROM archlinux:latest
|
||||
MAINTAINER CodingWorkshop <constitutive@codingworkshop.eu.org>
|
||||
|
||||
# Update system base
|
||||
RUN pacman -Syu --noconfirm --noprogressbar --quiet
|
||||
|
||||
# Install additional packages
|
||||
RUN pacman -Syu --noconfirm --noprogressbar --quiet autoconf automake binutils bison cppcheck docker flex gcc git libedit libmd linux-headers patch pkgconfig texinfo wget
|
||||
|
||||
# Set locale
|
||||
RUN echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && \
|
||||
echo 'LANG=en_US.UTF-8' > /etc/locale.conf && \
|
||||
locale-gen
|
||||
|
||||
# Install Docker-in-Docker
|
||||
ENV DIND_COMMIT 3b5fac462d21ca164b3778647420016315289034
|
||||
RUN wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind && \
|
||||
chmod a+x /usr/local/bin/dind
|
||||
|
||||
# Configure Docker-in-Docker
|
||||
COPY files/entrypoint.sh /usr/local/bin/
|
||||
RUN chmod a+x /usr/local/bin/entrypoint.sh
|
||||
VOLUME /var/lib/docker
|
||||
EXPOSE 2375
|
||||
|
||||
# Install XT toolchain
|
||||
RUN wget https://github.com/xt-sys/xtchain/releases/download/2.2/xtchain-2.2-linux.tar.zst -O xtchain.tar.zst && \
|
||||
mkdir -p /opt/xtchain && \
|
||||
tar xapf xtchain.tar.zst -C /opt/xtchain && \
|
||||
rm xtchain.tar.zst
|
||||
|
||||
# Install GitHub publishing script
|
||||
COPY files/github_publish /usr/local/bin/
|
||||
RUN chmod a+x /usr/local/bin/github_publish
|
||||
|
||||
# Set system path
|
||||
ENV PATH="/opt/xtchain:/opt/xtchain/bin:${PATH}"
|
||||
|
||||
# Set default entrypoint
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||
CMD []
|
|
@ -0,0 +1,3 @@
|
|||
# OSCW Runner
|
||||
OSCW runner is an official build container for CodingWorkshop projects that include classic GNU toolchain and XTChain.
|
||||
It is based on the latest version of the Arch Linux base container. It is designed for use on the OSCW CI/CD platform.
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# no arguments passed
|
||||
# or first arg is `-f` or `--some-option`
|
||||
if [ "$#" -eq 0 -o "${1#-}" != "$1" ]; then
|
||||
# add our default arguments
|
||||
set -- dockerd \
|
||||
--host=unix:///var/run/docker.sock \
|
||||
--host=tcp://0.0.0.0:2375 \
|
||||
--storage-driver=vfs \
|
||||
"$@"
|
||||
fi
|
||||
|
||||
if [ "$1" = 'dockerd' ]; then
|
||||
# if we're running Docker, let's pipe through dind
|
||||
# (and we'll run dind explicitly with "sh" since its shebang is /bin/bash)
|
||||
set -- sh "$(which dind)" "$@"
|
||||
fi
|
||||
|
||||
exec "$@"
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
GITHUB_USERNAME="${1}"
|
||||
GITHUB_TOKEN="${2}"
|
||||
ASSET_NAME="${3}"
|
||||
|
||||
echo "Creating new GitHub release '${CI_COMMIT_TAG}'"
|
||||
RESULT=$(curl --user "${GITHUB_USERNAME}:${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${CI_REPO}/releases -d \
|
||||
"{
|
||||
\"tag_name\": \"${CI_COMMIT_TAG}\",
|
||||
\"target_commitish\": \"${CI_COMMIT_SHA}\",
|
||||
\"name\": \"${CI_COMMIT_TAG}\",
|
||||
\"draft\": false,
|
||||
\"prerelease\": false
|
||||
}")
|
||||
|
||||
echo "Create release result: ${RESULT}"
|
||||
RELEASE_ID=$(echo "${RESULT}" | python -c 'import json,sys;print(json.load(sys.stdin)["id"])')
|
||||
|
||||
echo "Publishing artifact: ${ASSET_NAME}"
|
||||
curl --user "${GITHUB_USERNAME}:${GITHUB_TOKEN}" -X POST https://uploads.github.com/repos/${CI_REPO}/releases/${RELEASE_ID}/assets?name=${ASSET_NAME} \
|
||||
--header 'Content-Type: text/javascript ' --upload-file ${ASSET_NAME}
|
Loading…
Reference in New Issue