Ship element-web as a debian package (#26533)
This commit is contained in:
parent
8b01798bd6
commit
edeaf8065e
3 changed files with 44 additions and 31 deletions
60
.github/workflows/build_debian.yaml
vendored
60
.github/workflows/build_debian.yaml
vendored
|
@ -31,38 +31,48 @@ jobs:
|
||||||
|
|
||||||
- name: Prepare
|
- name: Prepare
|
||||||
run: |
|
run: |
|
||||||
mkdir -p /tmp/element-web-debian/DEBIAN
|
mkdir -p debian/tmp/DEBIAN
|
||||||
cp -R debian/ /tmp/element-web-debian/DEBIAN/
|
find debian -maxdepth 1 -type f -exec cp "{}" debian/tmp/DEBIAN/ \;
|
||||||
mkdir -p /tmp/element-web-debian/usr/share/element-web/
|
mkdir -p debian/tmp/usr/share/element-web/
|
||||||
|
|
||||||
tar -xf "element-$VERSION.tar.gz" -C /tmp/element-web-debian/usr/share/element-web --strip-components=1
|
tar -xf "element-$VERSION.tar.gz" -C debian/tmp/usr/share/element-web --strip-components=1 --no-same-owner --no-same-permissions
|
||||||
cp config.sample.json /tmp/element-web-debian/usr/share/element-web/config.json
|
mv debian/tmp/usr/share/element-web/config{.sample,}.json
|
||||||
|
|
||||||
|
- name: Write changelog
|
||||||
|
run: |
|
||||||
|
VERSION=$(cat package.json | jq -r .version)
|
||||||
|
TIME=$(date -d "$PUBLISHED_AT" -R)
|
||||||
|
{
|
||||||
|
echo "element-web ($VERSION) default; urgency=medium"
|
||||||
|
echo "$BODY" | sed 's/^##/\n */g;s/^\*/ */g' | perl -pe 's/\[.+?]\((.+?)\)/\1/g'
|
||||||
|
echo ""
|
||||||
|
echo " -- $ACTOR <support@element.io> $TIME"
|
||||||
|
} > debian/tmp/DEBIAN/changelog
|
||||||
|
env:
|
||||||
|
ACTOR: ${{ github.actor }}
|
||||||
|
VERSION: ${{ github.event.release.tag_name }}
|
||||||
|
BODY: ${{ github.event.release.body }}
|
||||||
|
PUBLISHED_AT: ${{ github.event.release.published_at }}
|
||||||
|
|
||||||
- name: Build deb package
|
- name: Build deb package
|
||||||
run: |
|
run: |
|
||||||
VERSION=$(cat package.json | jq -r .version)
|
VERSION=$(cat package.json | jq -r .version)
|
||||||
chmod -R u=rw,go=r /tmp/element-web-debian/usr/share/element-web/
|
chmod -R u=rw,go=r debian/tmp/usr/share/element-web/
|
||||||
dpkg-deb -Zxz --root-owner-group -VVersion=$VERSION --build /tmp/element-web-debian element-web.deb
|
dpkg-gencontrol -v"$VERSION" -ldebian/tmp/DEBIAN/changelog
|
||||||
|
dpkg-deb -Zxz --root-owner-group --build debian/tmp element-web.deb
|
||||||
|
|
||||||
# For now just upload the artifact to github
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: debs
|
name: element-web.deb
|
||||||
path: "*.deb"
|
path: element-web.deb
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
|
|
||||||
#- name: Upload incoming deb
|
- name: Publish to packages.element.io
|
||||||
# if: github.event.release.prerelease == false
|
if: github.event.release.prerelease == false
|
||||||
# run: aws s3 cp element-web.deb "s3://$R2_INCOMING_BUCKET" --endpoint-url "$R2_URL" --region auto
|
uses: vector-im/packages.element.io@master
|
||||||
# env:
|
with:
|
||||||
# AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
|
file: element-web.deb
|
||||||
# AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}
|
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
bucket-api: ${{ vars.CF_R2_S3_API }}
|
||||||
#reprepro:
|
bucket-key-id: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
|
||||||
# needs: build
|
bucket-access-key: ${{ secrets.CF_R2_TOKEN }}
|
||||||
# name: Run reprepro
|
|
||||||
# if: github.event.release.prerelease == false
|
|
||||||
# uses: ./.github/workflows/reprepro.yaml
|
|
||||||
# secrets: inherit
|
|
||||||
# with:
|
|
||||||
# incoming: element-web.deb
|
|
||||||
|
|
2
debian/.gitignore
vendored
Normal file
2
debian/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/files
|
||||||
|
/tmp
|
13
debian/control
vendored
13
debian/control
vendored
|
@ -1,12 +1,13 @@
|
||||||
Package: element-web
|
Source: element-web
|
||||||
License: Apache-2.0
|
|
||||||
Vendor: support@element.io
|
|
||||||
Architecture: all
|
|
||||||
Maintainer: support@element.io
|
Maintainer: support@element.io
|
||||||
Recommends: element-io-archive-keyring
|
|
||||||
Section: web
|
Section: web
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Homepage: https://element.io/
|
Homepage: https://element.io/
|
||||||
Version: ${Version}
|
|
||||||
|
Package: element-web
|
||||||
|
Architecture: all
|
||||||
|
Recommends: httpd, element-io-archive-keyring
|
||||||
Description:
|
Description:
|
||||||
A feature-rich client for Matrix.org
|
A feature-rich client for Matrix.org
|
||||||
|
This package contains the web-based client that can be served through a web
|
||||||
|
server.
|
||||||
|
|
Loading…
Reference in a new issue