Improve build

This commit is contained in:
Xiaonan Shen 2020-05-31 21:16:31 -07:00
parent f50fb12487
commit b8296a70d6
No known key found for this signature in database
GPG Key ID: 211BF560D12417F5
8 changed files with 50 additions and 76 deletions

View File

@ -1,7 +1,7 @@
* *
!.dockerignore !.dockerignore
!releaserc !VERSION
!entrypoint.sh !entrypoint.sh
!install.sh !install.sh
!gpgparams !gpgparams

View File

@ -2,10 +2,9 @@ name: build
on: on:
push: push:
tags: branches:
- 'v*' - master
repository_dispatch: - dev
types: build
env: env:
DOCKER_TAG: shenxn/protonmail-bridge DOCKER_TAG: shenxn/protonmail-bridge
@ -17,34 +16,11 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@master uses: actions/checkout@master
- name: Set Env - name: Set Env
run: | run: bash set-env.sh
source releaserc - uses: docker/build-push-action@v1
echo "::set-env name=RELEASE::${RELEASE}"
echo "::set-env name=DEB_FILE::${DEB_FILE}"
- name: Repack deb
run: bash repack-deb.sh
- name: Create Release
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag_name: ${{ env.RELEASE }} username: ${{ secrets.REGISTRY_USERNAME }}
release_name: Release ${{ env.RELEASE }} password: ${{ secrets.REGISTRY_PASSWORD }}
body: Repacked ProtonMail Bridge deb without dependencies not needed by cli mode. repository: shenxn/protonmail-bridge
draft: false tags: ${{ env.TAGS }}
prerelease: false add_git_labels: true
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ./deb/${{ env.DEB_FILE }}
asset_name: ${{ env.DEB_FILE }}
asset_content_type: application/vnd.debian.binary-package
- name: Push Tag to Trigger Docker Hub Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: bash push-tag.sh

View File

@ -4,10 +4,12 @@ LABEL maintainer="Xiaonan Shen <s@sxn.dev>"
EXPOSE 25/tcp EXPOSE 25/tcp
EXPOSE 143/tcp EXPOSE 143/tcp
WORKDIR /protonmail
# Copy bash scripts # Copy bash scripts
COPY gpgparams install.sh entrypoint.sh releaserc /protonmail/ COPY gpgparams install.sh entrypoint.sh VERSION /protonmail/
# Install dependencies and protonmail bridge # Install dependencies and protonmail bridge
RUN bash /protonmail/install.sh RUN bash install.sh
ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"] ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"]

1
VERSION Normal file
View File

@ -0,0 +1 @@
1.2.7-1

View File

@ -2,21 +2,32 @@
set -ex set -ex
source /protonmail/releaserc VERSION=`cat VERSION`
DEB_FILE=protonmail-bridge_${VERSION}_amd64.deb
# Install dependents # Install dependents
apt-get update apt-get update
apt-get install -y --no-install-recommends socat pass apt-get install -y --no-install-recommends socat pass
# Download repacked deb # Build time dependencies
apt-get install -y wget apt-get install -y wget binutils xz-utils
wget -O /protonmail/protonmail.deb https://github.com/shenxn/protonmail-bridge-docker/releases/download/${RELEASE}/${DEB_FILE}
apt-get purge -y wget # Repack deb (remove unnecessary dependencies)
apt-get autoremove -y wget https://protonmail.com/download/${DEB_FILE}
ar x -v ${DEB_FILE}
mkdir control
tar xvfJ control.tar.xz -C control
sed -i "s/^Depends: .*$/Depends: libsecret-1-0, libgl1-mesa-glx/" control/control
cd control
tar cvfJ ../control.tar.xz .
cd ../
ar rcs -v ${DEB_FILE} debian-binary control.tar.xz data.tar.xz
# Install protonmail bridge # Install protonmail bridge
apt-get install -y --no-install-recommends /protonmail/protonmail.deb apt-get install -y --no-install-recommends ./${DEB_FILE}
# Cleanup # Cleanup
apt-get purge -y wget binutils xz-utils
apt-get autoremove -y
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
rm /protonmail/protonmail.deb rm ${DEB_FILE}

View File

@ -1,2 +0,0 @@
RELEASE=1.2.7-1
DEB_FILE=protonmail-bridge_${RELEASE}_amd64.deb

View File

@ -1,25 +0,0 @@
#!/bin/bash
set -ex
source releaserc
# Download deb
mkdir deb
cd deb
rm -f ${DEB_FILE}
wget https://protonmail.com/download/${DEB_FILE}
# Unpack deb
ar x -v ${DEB_FILE}
mkdir control
tar xvfJ control.tar.xz -C control
# Replace qt with libgl and remove unnecessary dependencies
sed -i "s/^Depends: .*$/Depends: libsecret-1-0, libgl1-mesa-glx/" control/control
# Pack deb
cd control
tar cvfJ ../control.tar.xz .
cd ../
ar rcs -v ${DEB_FILE} debian-binary control.tar.xz data.tar.xz

11
set-env.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
set -ex
VERSION=`cat VERSION`
if [[ $GITHUB_REF == "master" ]]; then
echo "::set-env name=TAGS::latest,${VERSION}"
else
echo "::set-env name=TAGS::dev,${VERSION}-dev"
fi