Loading .gitlab-ci.yml +76 −1 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ check-version: JAVA_VERSION_FILE: "src/main/java/ecorp/easy/installer/AppConstants.java" JAVA_VERSION_FILE: "src/main/java/ecorp/easy/installer/AppConstants.java" SNAPCRAFT_VERSION_FILE: "snap/snapcraft.yaml" SNAPCRAFT_VERSION_FILE: "snap/snapcraft.yaml" WINDOWS_VERSION_FILE: "windows-installer-mui.nsi" WINDOWS_VERSION_FILE: "windows-installer-mui.nsi" AUR_VERSION_FILE: "pkg/arch/PKGBUILD" script: script: - ./check-version.sh - ./check-version.sh rules: rules: Loading @@ -38,6 +39,25 @@ build-docker: - docker build --cache-from $CONTAINER_IMAGE:$CONTAINER_TAG -t $CONTAINER_IMAGE:$CONTAINER_TAG . - docker build --cache-from $CONTAINER_IMAGE:$CONTAINER_TAG -t $CONTAINER_IMAGE:$CONTAINER_TAG . - docker push $CONTAINER_IMAGE:$CONTAINER_TAG - docker push $CONTAINER_IMAGE:$CONTAINER_TAG build-aur-docker: # build AUR docker image # the image is different from the build-docker (which using docker:19) step as # archlinux/archlinux docker image fails with # error: failed to initialize alpm library: image: docker:20 stage: prepare services: - docker:20-dind tags: - generic_privileged variables: DOCKER_DRIVER: overlay2 script: - docker pull $CONTAINER_IMAGE/aur:$CONTAINER_TAG || true - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - cd docker && docker build --cache-from $CONTAINER_IMAGE/aur:$CONTAINER_TAG -f Dockerfile.arch -t $CONTAINER_IMAGE/aur:$CONTAINER_TAG . - docker push $CONTAINER_IMAGE/aur:$CONTAINER_TAG build-ubuntu: build-ubuntu: image: registry.gitlab.e.foundation/e/devices/easy-installer:stable image: registry.gitlab.e.foundation/e/devices/easy-installer:stable stage: build stage: build Loading @@ -51,7 +71,6 @@ build-ubuntu: paths: paths: - easy-installer*.snap - easy-installer*.snap build-windows: build-windows: image: registry.gitlab.e.foundation/e/devices/easy-installer:stable image: registry.gitlab.e.foundation/e/devices/easy-installer:stable stage: build stage: build Loading @@ -67,6 +86,24 @@ build-windows: - Easy-installer-setup.exe - Easy-installer-setup.exe - Easy-installer-setup.exe.sha256sum - Easy-installer-setup.exe.sha256sum .build-aur: image: $CONTAINER_IMAGE/aur:$CONTAINER_TAG stage: build before_script: - mkdir $PUBLISH_DEST && cp -a pkg/arch/. $PUBLISH_DEST script: - cd $PUBLISH_DEST && makepkg -sifc --noconfirm build-aur: extends: - .build-aur environment: name: aur-repo artifacts: name: "easy-installer-aur" paths: - $PUBLISH_DEST/*.pkg.tar.zst publish-ubuntu: publish-ubuntu: image: registry.gitlab.e.foundation/e/devices/easy-installer:stable image: registry.gitlab.e.foundation/e/devices/easy-installer:stable stage: publish stage: publish Loading Loading @@ -99,3 +136,41 @@ publish-windows: rules: rules: - if: '$CI_COMMIT_TAG' - if: '$CI_COMMIT_TAG' when: manual when: manual .publish-aur: image: $CONTAINER_IMAGE/aur:$CONTAINER_TAG stage: publish variables: RELEASE_TYPE: beta before_script: # store the private key into the agent's memory - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY_ED" | tr -d '\r' | ssh-add - > /dev/null # add 'aur' to SSH configure - install -m '700' -d ~/.ssh - echo -e "Host aur aur.archlinux.org\n User aur\n Hostname aur.archlinux.org" > ~/.ssh/config - ssh-keyscan aur.archlinux.org > ~/.ssh/known_hosts # config git - git config --global user.email "$PUBLISH_USER_EMAIL" - git config --global user.name "$PUBLISH_USER" script: # Clone AUR repo - git clone ssh://aur@aur.archlinux.org/$CI_PROJECT_NAME.git # Copy package file from source to AUR clone - cp -a pkg/arch/. $CI_PROJECT_NAME/ # Generate add, commit and push - | cd $CI_PROJECT_NAME/ && makepkg --printsrcinfo > .SRCINFO && git add . && git commit -m "$CI_COMMIT_TAG" && git push publish-aur: extends: - .publish-aur environment: name: aur-repo rules: - if: '$CI_COMMIT_TAG' when: manual check-version.sh +4 −1 Original line number Original line Diff line number Diff line Loading @@ -9,9 +9,12 @@ echo "Snapcraft version: $SNAPCRAFT_VERSION ($SNAPCRAFT_VERSION_FILE)" WINDOWS_VERSION=$(cat $WINDOWS_VERSION_FILE | grep "define appVersion" | sed -E 's/!define appVersion "(v.*)"/\1/') WINDOWS_VERSION=$(cat $WINDOWS_VERSION_FILE | grep "define appVersion" | sed -E 's/!define appVersion "(v.*)"/\1/') echo "Windows version: $WINDOWS_VERSION ($WINDOWS_VERSION_FILE)" echo "Windows version: $WINDOWS_VERSION ($WINDOWS_VERSION_FILE)" AUR_VERSION=$(cat $AUR_VERSION_FILE | grep "^pkgver" | sed 's/[^=]*= *//;s/.*/v&-beta/') echo "AUR version: $AUR_VERSION ($AUR_VERSION_FILE)" echo "Tag version: $CI_COMMIT_TAG" echo "Tag version: $CI_COMMIT_TAG" if [ $JAVA_VERSION != $CI_COMMIT_TAG ] || [ $SNAPCRAFT_VERSION != $CI_COMMIT_TAG ] || [ $WINDOWS_VERSION != $CI_COMMIT_TAG ] if [ $JAVA_VERSION != $CI_COMMIT_TAG ] || [ $SNAPCRAFT_VERSION != $CI_COMMIT_TAG ] || [ $WINDOWS_VERSION != $CI_COMMIT_TAG ] || [ $AUR_VERSION_VERSION != $CI_COMMIT_TAG ] then then exit 1 exit 1 fi fi docker/Dockerfile.arch 0 → 100644 +29 −0 Original line number Original line Diff line number Diff line FROM archlinux:base-devel # update pacman and install sudo git openssh RUN pacman -Syyu --noconfirm && \ pacman -Syy --noconfirm --noprogressbar sudo git openssh && \ yes | pacman -Scc && rm -fr /var/lib/pacman/sync/*1 # add a non-root user and allowing running as root with password RUN useradd -m builder && \ echo "builder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers # make /home/builder working directory WORKDIR /home/builder # run as user USER builder # install build dependencies RUN mkdir /home/builder/pkg &&\ curl -o '/home/builder/pkg/PKGBUILD' https://gitlab.e.foundation/e/devices/easy-installer/-/raw/master/pkg/arch/PKGBUILD && \ cd /home/builder/pkg/ && \ sudo pacman -Syyu --noconfirm && \ yes | makepkg -seo && \ yes | sudo pacman -Scc && sudo rm -fr /var/lib/pacman/sync/* # remove files after installing dependecies RUN sudo rm -rf /home/builder/pkg/ CMD ["/usr/bin/bash"] Loading
.gitlab-ci.yml +76 −1 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ check-version: JAVA_VERSION_FILE: "src/main/java/ecorp/easy/installer/AppConstants.java" JAVA_VERSION_FILE: "src/main/java/ecorp/easy/installer/AppConstants.java" SNAPCRAFT_VERSION_FILE: "snap/snapcraft.yaml" SNAPCRAFT_VERSION_FILE: "snap/snapcraft.yaml" WINDOWS_VERSION_FILE: "windows-installer-mui.nsi" WINDOWS_VERSION_FILE: "windows-installer-mui.nsi" AUR_VERSION_FILE: "pkg/arch/PKGBUILD" script: script: - ./check-version.sh - ./check-version.sh rules: rules: Loading @@ -38,6 +39,25 @@ build-docker: - docker build --cache-from $CONTAINER_IMAGE:$CONTAINER_TAG -t $CONTAINER_IMAGE:$CONTAINER_TAG . - docker build --cache-from $CONTAINER_IMAGE:$CONTAINER_TAG -t $CONTAINER_IMAGE:$CONTAINER_TAG . - docker push $CONTAINER_IMAGE:$CONTAINER_TAG - docker push $CONTAINER_IMAGE:$CONTAINER_TAG build-aur-docker: # build AUR docker image # the image is different from the build-docker (which using docker:19) step as # archlinux/archlinux docker image fails with # error: failed to initialize alpm library: image: docker:20 stage: prepare services: - docker:20-dind tags: - generic_privileged variables: DOCKER_DRIVER: overlay2 script: - docker pull $CONTAINER_IMAGE/aur:$CONTAINER_TAG || true - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - cd docker && docker build --cache-from $CONTAINER_IMAGE/aur:$CONTAINER_TAG -f Dockerfile.arch -t $CONTAINER_IMAGE/aur:$CONTAINER_TAG . - docker push $CONTAINER_IMAGE/aur:$CONTAINER_TAG build-ubuntu: build-ubuntu: image: registry.gitlab.e.foundation/e/devices/easy-installer:stable image: registry.gitlab.e.foundation/e/devices/easy-installer:stable stage: build stage: build Loading @@ -51,7 +71,6 @@ build-ubuntu: paths: paths: - easy-installer*.snap - easy-installer*.snap build-windows: build-windows: image: registry.gitlab.e.foundation/e/devices/easy-installer:stable image: registry.gitlab.e.foundation/e/devices/easy-installer:stable stage: build stage: build Loading @@ -67,6 +86,24 @@ build-windows: - Easy-installer-setup.exe - Easy-installer-setup.exe - Easy-installer-setup.exe.sha256sum - Easy-installer-setup.exe.sha256sum .build-aur: image: $CONTAINER_IMAGE/aur:$CONTAINER_TAG stage: build before_script: - mkdir $PUBLISH_DEST && cp -a pkg/arch/. $PUBLISH_DEST script: - cd $PUBLISH_DEST && makepkg -sifc --noconfirm build-aur: extends: - .build-aur environment: name: aur-repo artifacts: name: "easy-installer-aur" paths: - $PUBLISH_DEST/*.pkg.tar.zst publish-ubuntu: publish-ubuntu: image: registry.gitlab.e.foundation/e/devices/easy-installer:stable image: registry.gitlab.e.foundation/e/devices/easy-installer:stable stage: publish stage: publish Loading Loading @@ -99,3 +136,41 @@ publish-windows: rules: rules: - if: '$CI_COMMIT_TAG' - if: '$CI_COMMIT_TAG' when: manual when: manual .publish-aur: image: $CONTAINER_IMAGE/aur:$CONTAINER_TAG stage: publish variables: RELEASE_TYPE: beta before_script: # store the private key into the agent's memory - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY_ED" | tr -d '\r' | ssh-add - > /dev/null # add 'aur' to SSH configure - install -m '700' -d ~/.ssh - echo -e "Host aur aur.archlinux.org\n User aur\n Hostname aur.archlinux.org" > ~/.ssh/config - ssh-keyscan aur.archlinux.org > ~/.ssh/known_hosts # config git - git config --global user.email "$PUBLISH_USER_EMAIL" - git config --global user.name "$PUBLISH_USER" script: # Clone AUR repo - git clone ssh://aur@aur.archlinux.org/$CI_PROJECT_NAME.git # Copy package file from source to AUR clone - cp -a pkg/arch/. $CI_PROJECT_NAME/ # Generate add, commit and push - | cd $CI_PROJECT_NAME/ && makepkg --printsrcinfo > .SRCINFO && git add . && git commit -m "$CI_COMMIT_TAG" && git push publish-aur: extends: - .publish-aur environment: name: aur-repo rules: - if: '$CI_COMMIT_TAG' when: manual
check-version.sh +4 −1 Original line number Original line Diff line number Diff line Loading @@ -9,9 +9,12 @@ echo "Snapcraft version: $SNAPCRAFT_VERSION ($SNAPCRAFT_VERSION_FILE)" WINDOWS_VERSION=$(cat $WINDOWS_VERSION_FILE | grep "define appVersion" | sed -E 's/!define appVersion "(v.*)"/\1/') WINDOWS_VERSION=$(cat $WINDOWS_VERSION_FILE | grep "define appVersion" | sed -E 's/!define appVersion "(v.*)"/\1/') echo "Windows version: $WINDOWS_VERSION ($WINDOWS_VERSION_FILE)" echo "Windows version: $WINDOWS_VERSION ($WINDOWS_VERSION_FILE)" AUR_VERSION=$(cat $AUR_VERSION_FILE | grep "^pkgver" | sed 's/[^=]*= *//;s/.*/v&-beta/') echo "AUR version: $AUR_VERSION ($AUR_VERSION_FILE)" echo "Tag version: $CI_COMMIT_TAG" echo "Tag version: $CI_COMMIT_TAG" if [ $JAVA_VERSION != $CI_COMMIT_TAG ] || [ $SNAPCRAFT_VERSION != $CI_COMMIT_TAG ] || [ $WINDOWS_VERSION != $CI_COMMIT_TAG ] if [ $JAVA_VERSION != $CI_COMMIT_TAG ] || [ $SNAPCRAFT_VERSION != $CI_COMMIT_TAG ] || [ $WINDOWS_VERSION != $CI_COMMIT_TAG ] || [ $AUR_VERSION_VERSION != $CI_COMMIT_TAG ] then then exit 1 exit 1 fi fi
docker/Dockerfile.arch 0 → 100644 +29 −0 Original line number Original line Diff line number Diff line FROM archlinux:base-devel # update pacman and install sudo git openssh RUN pacman -Syyu --noconfirm && \ pacman -Syy --noconfirm --noprogressbar sudo git openssh && \ yes | pacman -Scc && rm -fr /var/lib/pacman/sync/*1 # add a non-root user and allowing running as root with password RUN useradd -m builder && \ echo "builder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers # make /home/builder working directory WORKDIR /home/builder # run as user USER builder # install build dependencies RUN mkdir /home/builder/pkg &&\ curl -o '/home/builder/pkg/PKGBUILD' https://gitlab.e.foundation/e/devices/easy-installer/-/raw/master/pkg/arch/PKGBUILD && \ cd /home/builder/pkg/ && \ sudo pacman -Syyu --noconfirm && \ yes | makepkg -seo && \ yes | sudo pacman -Scc && sudo rm -fr /var/lib/pacman/sync/* # remove files after installing dependecies RUN sudo rm -rf /home/builder/pkg/ CMD ["/usr/bin/bash"]