Compare commits

..

51 commits
v1.3.3 ... main

Author SHA1 Message Date
6db0b9271c Update for bridge 3.0.x. 2023-02-02 07:48:00 -06:00
9d5ead578d Updated Dockerfile to add bash. 2021-03-08 10:18:56 -06:00
862d2bf49a Restore trigger.
Some checks failed
continuous-integration/drone/tag Build is failing
2021-01-26 13:04:19 -06:00
49f5f6be59 Back to original multiline.
All checks were successful
continuous-integration/drone/push Build is passing
2021-01-26 13:01:40 -06:00
26a1c6226c Alternate YAML multiline.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 12:59:25 -06:00
b32608abb3 Trim whitespace from BUILDX_URL.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 12:45:08 -06:00
ec399a94ec Changed BUILDX_URL line.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 12:42:32 -06:00
219771ec52 Move to single line. 2021-01-26 12:18:39 -06:00
bb980519e4 Additional exec testing.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 12:17:12 -06:00
3c3e3e7727 Test exec runner.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 12:13:50 -06:00
c575b8f86f Try manual push.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 07:52:09 -06:00
7f55378a4d Removed ip6tables.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 07:29:22 -06:00
ed65643608 Add IPv6 to DinD.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 07:21:16 -06:00
ebd10ab5b8 Force A record for registry.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-25 20:32:51 -06:00
c192a4fbf3 Remove allow.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-25 20:25:33 -06:00
596ecffb83 CI/CD/buildx testing.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-25 20:21:40 -06:00
26b7e5c3ff Restored trigger.
Some checks failed
continuous-integration/drone/tag Build is failing
2021-01-24 19:12:37 -06:00
4600e81d6b Removed trigger.
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-22 14:52:59 -06:00
efd9a9cb96 CI/CD testing with IPv6. 2021-01-22 14:52:37 -06:00
d3aee1a6db Made CI/CD push step manual.
Some checks failed
continuous-integration/drone/tag Build is failing
2021-01-22 14:26:55 -06:00
2d3885fede Restored trigger.
All checks were successful
continuous-integration/drone/tag Build is passing
2020-12-23 11:11:26 -06:00
633f7e77ae Changed from trigger to when.
All checks were successful
continuous-integration/drone/push Build is passing
2020-12-23 09:36:57 -06:00
bd98d7c0e0 Restored original amd64 .drone.yml. 2020-12-15 04:02:09 -06:00
fbeb4edbd8 Exec testing.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-15 03:52:49 -06:00
7f84bf5de2 Removed image.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-15 03:43:20 -06:00
7962016a4b Switched to exec runner.
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2020-12-15 03:42:27 -06:00
Michael Gibson
be25850914 Fixed end of line.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-15 03:16:34 -06:00
Michael Gibson
0e5464f5ee Testing arm64.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-15 03:11:11 -06:00
Michael Gibson
bd3b7d6451 Restored trigger. 2020-12-04 11:21:03 -06:00
Michael Gibson
4409953211 Change multiline string type.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-04 10:24:18 -06:00
Michael Gibson
bdd5988498 Formatting fixes.
All checks were successful
continuous-integration/drone/push Build is passing
2020-12-04 10:06:34 -06:00
Michael Gibson
139b6744cb Formatting fixes. 2020-12-04 10:06:16 -06:00
Michael Gibson
8e22ce7e9f Removed tags for testing.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-04 10:01:51 -06:00
Michael Gibson
457f5e86cb Made formatting more readable. 2020-12-04 10:01:08 -06:00
Michael Gibson
bd2554e463 Cleaned formatting, set arch requirement. 2020-12-04 09:20:39 -06:00
Michael Gibson
f046d78430 Restored tag directives. 2020-12-03 16:29:42 -06:00
Michael Gibson
ea7f123e2c Added docker login commands.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 16:00:51 -06:00
Michael Gibson
d5845951b1 Removed arm/v7.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 15:28:31 -06:00
Michael Gibson
feab405f18 Updated golang version, removed armv6.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 15:08:52 -06:00
Michael Gibson
bd56e77823 Fixed wget command.
Some checks are pending
continuous-integration/drone/push Build is running
2020-12-03 14:40:17 -06:00
Michael Gibson
1672fda080 Check for buildx.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:35:14 -06:00
Michael Gibson
cfe1bf4e9b Added docker plugins to PATH.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:33:51 -06:00
Michael Gibson
161f5cbbf2 Debugging CI/CD.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:30:41 -06:00
Michael Gibson
254b916aa6 Updated docker socket.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:24:35 -06:00
Michael Gibson
8758d46621 Updated wget command.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:21:37 -06:00
Michael Gibson
52d152b8c2 Removed brackets from variable.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:20:23 -06:00
Michael Gibson
d4f4a0a98e More CI/CD testing.
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-03 14:19:26 -06:00
Michael Gibson
c812a8aed7 Quoted strings.
Some checks failed
continuous-integration/drone/tag Build is failing
2020-12-03 14:11:48 -06:00
Michael Gibson
b52a231c3c Made changes to CI/CD for buildx build. 2020-12-03 14:06:11 -06:00
Michael Gibson
30c93de13e Updated BRIDGE binary.
Some checks failed
continuous-integration/drone/tag Build is failing
2020-12-03 13:02:16 -06:00
Michael Gibson
f3e41a2856 Fixed binary name, added RELEASE option. 2020-12-03 13:01:56 -06:00
4 changed files with 103 additions and 45 deletions

View file

@ -1,27 +1,58 @@
--- ---
kind: pipeline kind: pipeline
type: docker type: exec
name: default name: default
volumes: environment:
- name: docker_socket DOCKER_CLI_EXPERIMENTAL: enabled
host:
path: /var/run/docker.sock platform:
os: linux
arch: amd64
steps: steps:
- name: build - name: build
image: alexviscreanu/buildx
commands: commands:
- docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 - |-
- export BUILDER_ID="crosscomp-$(cat /proc/self/cgroup | head -1 | cut -d '/' -f 3)" case $(uname -a) in
- docker buildx create --use --name $BUILDER_ID --driver-opt image=stargate01/buildkit *x86_64*)
- docker buildx inspect --bootstrap export ARCH="amd64"
- echo $REGISTRY_PASS | docker login --username $REGISTRY_USER --password-stdin $REGISTRY_HOST docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . ;;
- docker buildx rm $BUILDER_ID *aarch64*)
volumes: export ARCH="arm64"
- name: docker_socket ;;
path: /var/run/docker.sock *)
export ARCH="unknown"
;;
esac
- |-
export BUILDX_URL=$(\
wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest\
| grep "browser_download_url.*linux-$ARCH"\
| cut -d: -f2,3\
| tr -d \"\
| tr -d \ \
)
- mkdir -p ~/.docker/cli-plugins
- wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL
- chmod a+x ~/.docker/cli-plugins/docker-buildx
- docker version
- docker buildx version
- |-
echo -n $REGISTRY_PASS\
| docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST
- docker buildx create --name multiarch --use
- |-
docker buildx build\
--no-cache\
--platform linux/amd64,linux/arm64\
--output type=image,push=true\
--progress tty\
--build-arg TAG=$DRONE_TAG\
-t $REGISTRY_HOST/$IMAGE:$DRONE_TAG\
-t $REGISTRY_HOST/$IMAGE:latest\
.
environment: environment:
IMAGE: protonmail-bridge IMAGE: protonmail-bridge
REGISTRY_HOST: registry.thegibsonhome.net REGISTRY_HOST: registry.thegibsonhome.net

View file

@ -1,36 +1,55 @@
# Build the ProtonMail Bridge. # Build the ProtonMail Bridge.
FROM golang:1.14-alpine as build FROM golang:1.18-buster as build
ENV LANG C.UTF-8 ENV LANG C.UTF-8
RUN apk add --no-cache \
gcc \
git \
libsecret-dev \
make \
musl-dev
WORKDIR /usr/src
# Install required build packages
RUN apt-get update \
&& apt-get install -y \
bash \
build-essential \
curl \
git \
libsecret-1-dev \
musl-dev
# Download/build the application
WORKDIR /usr/src
ARG RELEASE
ARG TAG ARG TAG
RUN git clone https://github.com/ProtonMail/proton-bridge.git proton-bridge \ RUN if [ -n "$RELEASE" ]; then \
echo "Using release $RELEASE..." \
&& curl -L -s "https://github.com/ProtonMail/proton-bridge/archive/$RELEASE.tar.gz" | tar zx \
&& export PROTON_BRIDGE="proton-bridge-$(echo $RELEASE | sed -e 's/^\(v\|br\)//')" \
&& ln -s "${PROTON_BRIDGE}" proton-bridge \
&& cd "${PROTON_BRIDGE}" \
; else \
git clone https://github.com/ProtonMail/proton-bridge.git proton-bridge \
&& cd proton-bridge \ && cd proton-bridge \
&& if [ -n "$TAG" ]; then echo "Using tags/$TAG..."; git checkout tags/$TAG; fi \ && if [ -n "$TAG" ]; then echo "Using tags/$TAG..."; git checkout tags/$TAG; fi \
; fi \
&& make build-nogui && make build-nogui
# Create a container for the ProtonMail Bridge. # Create a container for the ProtonMail Bridge.
FROM alpine:edge FROM debian:stable
ENV LANG C.UTF-8 ENV LANG C.UTF-8
EXPOSE 25/tcp EXPOSE 25/tcp
EXPOSE 143/tcp EXPOSE 143/tcp
COPY --from=build /usr/src/proton-bridge/Desktop-Bridge /bin/protonmail-bridge COPY --from=build /usr/src/proton-bridge/proton-bridge /bin/proton-bridge
COPY --from=build /usr/src/proton-bridge/bridge /bin/bridge
COPY entrypoint /bin/ COPY entrypoint /bin/
COPY initproton /bin/ COPY initproton /bin/
RUN apk add --no-cache \ RUN apt-get update\
libsecret \ && apt-get install -y --no-install-recommends --no-install-suggests\
pass \ libcap2\
socat \ libsecret-1-0\
su-exec \ gosu\
&& chmod +x /bin/entrypoint \ gpg-agent\
pass\
socat\
&& rm -rf /var/lib/apt/lists/*\
&& chmod +x /bin/entrypoint\
&& chmod +x /bin/initproton && chmod +x /bin/initproton
WORKDIR /var/lib/proton WORKDIR /var/lib/proton

View file

@ -9,13 +9,11 @@ GROUP=proton
if getent group $GROUP_ID > /dev/null; then if getent group $GROUP_ID > /dev/null; then
echo "Using group $GROUP with GID $GROUP_ID..." echo "Using group $GROUP with GID $GROUP_ID..."
GROUP=$(getent group $GROUP_ID | cut -d: -f1) GROUP=$(getent group $GROUP_ID | cut -d: -f1)
echo "Using group $GROUP with GID $GROUP_ID..."
else else
echo "Adding group $GROUP with GID $GROUP_ID..." echo "Adding group $GROUP with GID $GROUP_ID..."
addgroup -g $GROUP_ID $GROUP addgroup -g $GROUP_ID $GROUP
fi fi
echo "Adding user proton with group $GROUP..." echo "Adding user proton ($USER_ID) with group $GROUP ${GROUP_ID}..."
echo adduser -D -u $USER_ID -G $GROUP -h /var/lib/proton -s /bin/sh proton
adduser -D -u $USER_ID -G $GROUP -h /var/lib/proton -s /bin/sh proton adduser -D -u $USER_ID -G $GROUP -h /var/lib/proton -s /bin/sh proton
chown -R ${USER_ID}:${GROUP_ID} /var/lib/proton chown -R ${USER_ID}:${GROUP_ID} /var/lib/proton
export HOME=/var/lib/proton export HOME=/var/lib/proton
@ -27,4 +25,5 @@ setcap 'cap_net_bind_service=+ep' /usr/bin/socat
socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 & socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 &
socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 & socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 &
exec /sbin/su-exec proton "$@" echo "Starting ProtonMail Bridge..."
exec /usr/sbin/gosu proton "$@"

View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
set -eufo pipefail set -eufo pipefail
BRIDGE=/bin/protonmail-bridge BRIDGE=/bin/bridge
FIFO=/tmp/fifo FIFO=/tmp/fifo
PRINT_INFO=${PRINT_INFO:-""} PRINT_INFO=${PRINT_INFO:-""}
@ -11,14 +11,20 @@ if [ -n "$PASS_FILE" ]; then
PASS=$(cat $PASS_FILE) PASS=$(cat $PASS_FILE)
fi fi
echo "Checking for GPG configuration..."
if ! [ -d .gnupg ]; then if ! [ -d .gnupg ]; then
echo "Generating GPG Key..."
echo -e "%no-protection\nKey-Type: RSA\nKey-Length: 4096\nName-Real: $EMAIL\nExpire-Date: 0\n%commit" \ echo -e "%no-protection\nKey-Type: RSA\nKey-Length: 4096\nName-Real: $EMAIL\nExpire-Date: 0\n%commit" \
| gpg --generate-key --batch | gpg --generate-key --batch
fi fi
echo "Checking for Password Store..."
if ! [ -d .password-store ]; then if ! [ -d .password-store ]; then
echo "Initializing Pass..."
pass init "$EMAIL" pass init "$EMAIL"
fi fi
echo "Checking for ProtonMail Bridge Cache..."
if ! [ -d ~/.cache/protonmail/bridge ]; then if ! [ -d ~/.cache/protonmail/bridge ]; then
echo "Logging in to ProtonMail Bridge..."
COMMAND="login\n$EMAIL\n$PASSWORD" COMMAND="login\n$EMAIL\n$PASSWORD"
MFA_CODE=${MFA_CODE:-} MFA_CODE=${MFA_CODE:-}
if [ -n "$MFA_CODE" ]; then if [ -n "$MFA_CODE" ]; then
@ -28,6 +34,7 @@ if ! [ -d ~/.cache/protonmail/bridge ]; then
fi fi
if [ -n "$PRINT_INFO" ]; then if [ -n "$PRINT_INFO" ]; then
echo "Printing Info..."
echo info | $BRIDGE --cli | egrep '(Username|Password)' | sort -ru echo info | $BRIDGE --cli | egrep '(Username|Password)' | sort -ru
fi fi
@ -37,4 +44,6 @@ if [ -n "$LOG_LEVEL" ]; then
ARGUMENTS="${ARGUMENTS} --log-level ${LOG_LEVEL}" ARGUMENTS="${ARGUMENTS} --log-level ${LOG_LEVEL}"
fi fi
echo "Starting ProtonMail Bridge: $BRIDGE $ARGUMENTS"
$BRIDGE --version
$BRIDGE $ARGUMENTS $BRIDGE $ARGUMENTS