From fd9054f2f63370e6c73ecd546ca171af5e659ae8 Mon Sep 17 00:00:00 2001 From: meysamhadeli Date: Fri, 20 Jan 2023 19:40:38 +0330 Subject: [PATCH] ci: Setup self-signed certificate for gitpod --- .gitpod.Dockerfile | 1 - .gitpod.yml | 9 ++++++- scripts/self_signed_certificate_gitpod.sh | 25 +++++++++++++------ scripts/setup_kubectl_gitpod.sh | 10 ++++++++ .../PersistMessageProcessor.cs | 9 +++---- 5 files changed, 38 insertions(+), 16 deletions(-) delete mode 100644 .gitpod.Dockerfile create mode 100644 scripts/setup_kubectl_gitpod.sh diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile deleted file mode 100644 index 9c1e96b..0000000 --- a/.gitpod.Dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM gitpod/workspace-dotnet:latest diff --git a/.gitpod.yml b/.gitpod.yml index 938d983..2a157b8 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -6,12 +6,19 @@ # https://www.gitpod.io/docs/configure/workspaces/ports image: - file: .gitpod.Dockerfile + file: gitpod/workspace-dotnet + +caches: + dotnet: + paths: + - /usr/local/bin/docker-compose # https://www.gitpod.io/docs/configure/workspaces/tasks#execution-order # https://www.gitpod.io/docs/configure/projects/prebuilds tasks: - name: Setup kubectl + command: bash $GITPOD_REPO_ROOT/scripts/setup_kubectl_gitpod.sh + - name: Setup Self-Signed Certificate command: bash $GITPOD_REPO_ROOT/scripts/self_signed_certificate_gitpod.sh - name: Init Docker-Compose init: | diff --git a/scripts/self_signed_certificate_gitpod.sh b/scripts/self_signed_certificate_gitpod.sh index c2d2d28..9d1e90b 100644 --- a/scripts/self_signed_certificate_gitpod.sh +++ b/scripts/self_signed_certificate_gitpod.sh @@ -1,12 +1,21 @@ #!/bin/bash -# Generate self-signed certificate -openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj '/CN=localhost' +# install mkcert +curl -fsSL https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64 -o mkcert +chmod +x mkcert +sudo mv mkcert /usr/local/bin -# Trust the certificate in Gitpod -sudo mkdir -p /etc/gitpod/tls/ -sudo cp cert.pem /etc/gitpod/tls/ -sudo cp key.pem /etc/gitpod/tls/ +# install root CA +mkcert -install -# Restart Gitpod -sudo gitpod restart \ No newline at end of file +# create certificate +mkcert gitpod.local + +# move certificate files to gitpod directory +mkdir -p ~/.gitpod/certs +mv gitpod.local.pem ~/.gitpod/certs/ +mv gitpod.local-key.pem ~/.gitpod/certs/ + +# configure nginx to use the certificate +echo "server { listen 80; listen [::]:80; server_name gitpod.local; ssl_certificate /home/gitpod/.gitpod/certs/gitpod.local.pem; ssl_certificate_key /home/gitpod/.gitpod/certs/gitpod.local-key.pem; }" | sudo tee /etc/nginx/conf.d/gitpod.local.conf +sudo systemctl reload nginx \ No newline at end of file diff --git a/scripts/setup_kubectl_gitpod.sh b/scripts/setup_kubectl_gitpod.sh new file mode 100644 index 0000000..e4e9c35 --- /dev/null +++ b/scripts/setup_kubectl_gitpod.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Download kubectl binary +curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -L -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" + +# Make the kubectl binary executable +chmod +x kubectl + +# Move the binary in to PATH +sudo mv kubectl /usr/local/bin/ \ No newline at end of file diff --git a/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs b/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs index 0950d2f..e8e5429 100644 --- a/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs +++ b/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs @@ -112,14 +112,11 @@ public class PersistMessageProcessor : IPersistMessageProcessor public async Task ProcessAllAsync(CancellationToken cancellationToken = default) { - var messages = await _persistMessageDbContext?.PersistMessages? + var messages = await _persistMessageDbContext.PersistMessages .Where(x => x.MessageStatus != MessageStatus.Processed) - ?.ToListAsync(cancellationToken); + .ToListAsync(cancellationToken); - if (messages != null && messages.Any()) - { - foreach (var message in messages) await ProcessAsync(message.Id, message.DeliveryType, cancellationToken); - } + foreach (var message in messages) await ProcessAsync(message.Id, message.DeliveryType, cancellationToken); } public async Task ProcessInboxAsync(long messageId, CancellationToken cancellationToken = default)