From 61c194162db4f8a1f5de3a5a0c76323bc2b93963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Baranowski?= Date: Tue, 8 Oct 2024 14:06:09 +0200 Subject: [PATCH] build: Change docker image, enable server build --- .github/workflows/release.yml | 14 ++++++++++++++ justfile | 34 ++++++++++++++++++++++++++-------- server/Dockerfile | 16 ++++++---------- 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea31a66ec..1c4e8e9a4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,3 +56,17 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} GIT_TAG: ${{ env.GIT_TAG }} run: devbox run -- just release-oci + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Release kommander applications server + env: + GIT_TAG: ${{ env.GIT_TAG }} + run: | + git config --global user.name "${GITHUB_ACTOR}" + git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" + devbox run -- just release-server diff --git a/justfile b/justfile index bf33e2a15..e523d049f 100644 --- a/justfile +++ b/justfile @@ -18,18 +18,29 @@ archive_name := "kommander-applications-" + git_tag+ ".tar.gz" published_url := "https://downloads.d2iq.com" / s3_path / archive_name release publish="true" tmp_dir=`mktemp --directory`: (_prepare-archive tmp_dir) && _cleanup - if {{ publish }}; then aws s3 cp --acl {{ s3_acl }} {{ archive_name }} {{ s3_uri }}; fi - @echo "Published to {{ published_url }}" + #!/usr/bin/env bash + set -euox pipefail + if {{ publish }}; then + aws s3 cp --acl {{ s3_acl }} {{ archive_name }} {{ s3_uri }} + echo "Published to {{ published_url }}" + else + echo "Skipping publish" + fi release-oci publish="true" tmp_dir=`mktemp --directory`: (_prepare-files-for-a-bundle tmp_dir) - if {{ publish }}; then \ - cd {{ tmp_dir }} && echo "${DOCKER_PASSWORD}" | oras push --password-stdin --username "${DOCKER_USERNAME}" --verbose {{ registry }}/{{ repository }}:{{ git_tag }} .; + #!/usr/bin/env bash + set -euox pipefail + cd {{ tmp_dir }} + if {{ publish }}; then + oras push --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" --verbose {{ registry }}/{{ repository }}:{{ git_tag }} . + else + echo "Skipping publish" fi -release-server publish="true" tmp_dir=`mktemp --directory`: (_prepare-archive tmp_dir) && _cleanup - cp {{ archive_name }} ./server/ - cd ./server && docker buildx build . --tag {{ server_docker_repository }}:{{ git_tag }} --build-arg ARCHIVE_NAME={{ archive_name }} - rm ./server/{{ archive_name }} +release-server publish="true" tmp_dir=`mktemp --directory`: (_prepare-git-repository tmp_dir) + cp -r {{ tmp_dir }} ./server/data/ + cd ./server && docker buildx build . --tag {{ server_docker_repository }}:{{ git_tag }} + rm -rf ./server/data/ if {{ publish }}; then docker push {{ server_docker_repository }}:{{ git_tag }}; fi service_version:=`ls services/git-operator/ | grep -E "v?[[:digit:]]\.[[:digit:]]\.[[:digit:]]"` @@ -44,6 +55,12 @@ git-operator-fetch-manifests tmp_dir=`mktemp --directory`: _prepare-archive dir: (_prepare-files-for-a-bundle dir) tar -cvzf {{ justfile_directory() }}/{{ archive_name }} -C {{ dir }} . +_prepare-git-repository output_dir tmp_dir_for_cloning=`mktemp --directory`: + cd {{ output_dir }} && git init --bare --initial-branch=main + git clone {{ output_dir }} {{ tmp_dir_for_cloning }} + just --justfile {{ justfile() }} --working-directory {{ invocation_directory() }} _prepare-files-for-a-bundle {{ tmp_dir_for_cloning }} + cd {{ tmp_dir_for_cloning }} && git add . && git commit --message "initial commit" && git push origin main + _cleanup: rm {{ archive_name }} @@ -51,4 +68,5 @@ _prepare-files-for-a-bundle output_dir: rsync --quiet --archive --recursive --files-from={{ include_file }} --exclude-from={{ exclude_file }} {{ justfile_directory() }} {{ output_dir }} yq 'del(.resources[] | select(. == "ai-navigator-repos.yaml"))' --inplace {{ output_dir }}/common/helm-repositories/kustomization.yaml + import 'just/test.just' diff --git a/server/Dockerfile b/server/Dockerfile index 3c58719c5..e90006f74 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,13 +1,9 @@ -FROM sigoden/dufs +FROM alpine:3.20.3 -ARG ARCHIVE_NAME +RUN apk add --update git && \ + apk add --update git-daemon \ + rm -rf /var/cache/apk/* -# Dufs settings: -ENV DUFS_BIND=127.0.0.1 -ENV DUFS_PORT=5000 -ENV DUFS_TLS_CERT=cert.pem -ENV DUFS_TLS_KEY=key.pem +COPY --chown=1000:1000 data /data -COPY ${ARCHIVE_NAME} /data/ - -CMD ["/data"] +CMD ["git", "daemon", "--verbose", "--port=12345","--export-all", "/data"]