Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14aa01d8 authored by Arnau Vàzquez's avatar Arnau Vàzquez
Browse files

Merge branch 'aur-packaging-fazle' into 'master'

Aur packaging by fazle

Closes #275

See merge request !152
parents 886580f1 1b41ded6
Loading
Loading
Loading
Loading
+76 −1
Original line number Original line Diff line number Diff line
@@ -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:
@@ -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
@@ -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
@@ -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
@@ -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
+4 −1
Original line number Original line Diff line number Diff line
@@ -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"]