code.gitea.io/gitea@v1.22.3/snap/snapcraft.yaml (about)

     1  name: gitea
     2  summary: Gitea - A painless self-hosted Git service
     3  description: |
     4    The goal of this project is to make the easiest, fastest, and most painless
     5    way of setting up a self-hosted Git service. With Go, this can be done with
     6    an independent binary distribution across ALL platforms that Go supports,
     7    including Linux, Mac OS X, Windows and ARM.
     8  
     9  icon: public/assets/img/logo.png
    10  confinement: strict
    11  base: core22
    12  adopt-info: gitea
    13  
    14  architectures:
    15    - build-on: armhf
    16    - build-on: amd64
    17    - build-on: arm64
    18  
    19  environment:
    20    GITEA_CUSTOM: "$SNAP_COMMON"
    21    GITEA_WORK_DIR: "$SNAP_COMMON"
    22    GIT_TEMPLATE_DIR: "$SNAP/usr/share/git-core/templates"
    23    GIT_EXEC_PATH: "$SNAP/usr/lib/git-core"
    24  
    25  apps:
    26    gitea:
    27      command: gitea
    28      plugs: [network, network-bind, removable-media]
    29    web:
    30      command: gitea web
    31      daemon: simple
    32      plugs: [network, network-bind, removable-media]
    33    dump:
    34      command: gitea dump
    35      plugs: [home, removable-media]
    36    version:
    37      command: gitea --version
    38    sqlite:
    39      command: usr/bin/sqlite3
    40  
    41  parts:
    42    gitea:
    43      plugin: make
    44      source: .
    45      stage-packages: [ git, sqlite3, openssh-client ]
    46      build-packages: [ git, libpam0g-dev, libsqlite3-dev, build-essential]
    47      build-snaps: [ go/1.22/stable, node/20/stable ]
    48      build-environment:
    49        - LDFLAGS: ""
    50      override-pull: |
    51        craftctl default
    52  
    53        git config --global --add safe.directory /root/parts/gitea/src
    54        last_committed_tag="$(git for-each-ref --sort=taggerdate --format '%(tag)' refs/tags | tail -n 1)"
    55        last_released_tag="$(snap info gitea | awk '$1 == "latest/candidate:" { print $2 }')"
    56        # If the latest tag from the upstream project has not been released to
    57        # stable, build that tag instead of master.
    58        if [ "${last_committed_tag}" != "${last_released_tag}" ]; then
    59          git fetch
    60          git checkout "${last_committed_tag}"
    61        fi
    62  
    63        version="$(git describe --always | sed -e 's/-/+git/;y/-/./')"
    64        [ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable
    65        craftctl set version="$version"
    66        craftctl set grade="$grade"
    67  
    68      override-build: |
    69        set -x
    70        sed -i 's/os.Getuid()/1/g' modules/setting/setting.go
    71        TAGS="bindata sqlite sqlite_unlock_notify pam cert" make build
    72        install -D gitea "${SNAPCRAFT_PART_INSTALL}/gitea"
    73        cp -r options "${SNAPCRAFT_PART_INSTALL}/"
    74  
    75      prime:
    76        - -etc
    77        - -usr/lib/systemd
    78        - -usr/lib/gcc
    79        - -usr/lib/sasl2
    80        - -usr/lib/x86_64-linux-gnu/krb5
    81        - -usr/share/apport
    82        - -usr/share/bash-completion
    83        - -usr/share/git-core/contrib
    84        - -usr/share/man
    85        - -usr/share/upstart
    86        - -var