Skip to content
Snippets Groups Projects
Unverified Commit eaa7620b authored by Ryan Laurie's avatar Ryan Laurie Committed by GitHub
Browse files

Stop publishing elastic beanstalk artifacts (#34065)

parent 3138343a
Branches
Tags
No related merge requests found
Showing
with 0 additions and 737 deletions
......@@ -266,22 +266,3 @@ jobs:
- name: Wait for Metabase to start
run: while ! curl -s 'http://localhost:3000/api/health' | grep '{"status":"ok"}'; do sleep 1; done
timeout-minutes: 3
publish-elastic-beanstalk-artifacts:
runs-on: ubuntu-22.04
needs: containerize
timeout-minutes: 15
env:
NO_SLACK: 1
steps:
- uses: actions/checkout@v3
- name: Prepare back-end environment
uses: ./.github/actions/prepare-backend
- name: Configure AWS credentials for S3
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_S3_RELEASE_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_S3_RELEASE_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Publish Elastic Beanstalk artifacts
run: ./bin/ebs.sh :version ${{ github.ref_name }}
......@@ -8,7 +8,6 @@
[release.common :as c]
[release.common.slack :as slack]
[release.draft-release :as draft-release]
[release.elastic-beanstalk :as eb]
[release.git-tags :as git-tags]
[release.set-build-options :as set-build-options]
[release.uberjar :as uberjar]
......@@ -46,12 +45,3 @@
(let [steps (or (seq (map u/parse-as-keyword steps))
(keys steps*))]
(do-steps! steps))))
(defn publish-ebs [args]
(u/exit-when-finished-nonzero-on-exception
(let [version (:version args)]
(c/set-version! version)
(c/set-edition! (if (str/starts-with? (c/version) "0") :oss :ee))
(c/set-branch! "release-x.y.z") ;; FIXME: branch is irrelevant for CD run
(u/announce (format "Preparing Elastic Beanstalk artifacts for version %s" (c/version)))
(eb/publish-elastic-beanstalk-artifacts!))))
(ns release.elastic-beanstalk
"Code related to building and publishing Elastic Beanstalk artifacts."
(:require
[cheshire.core :as json]
[clojure.core.cache :as cache]
[metabuild-common.core :as u]
[release.common :as c]
[release.common.http :as common.http]
[release.common.upload :as common.upload]
[stencil.core :as stencil]
[stencil.loader]))
(set! *warn-on-reflection* true)
;; Disable caching of our template files for easier REPL debugging, we're only rendering them once anyways
(stencil.loader/set-cache (cache/ttl-cache-factory {} :ttl 0))
;; create a ZIP file with the contents
;; metabase-aws-eb.zip
;; ├─ Dockerrun.aws.json
;; ├─ .ebextensions/
;; ├─ 01_metabase.config
;; ├─ metabase_config/
;; ├─ (a bunch of other stuff)
(def ^:private eb-extensions-source
"Source location of the .ebextensions directory"
(u/assert-file-exists (u/filename c/root-directory "bin" "build" "src" "release" "elastic_beanstalk" ".ebextensions")))
(def ^:private eb-platform-source
"Source location of the .ebextensions directory"
(u/assert-file-exists (u/filename c/root-directory "bin" "build" "src" "release" "elastic_beanstalk" ".platform")))
(def ^:private archive-temp-dir
"Path where we'll put the contents of the ZIP file before we create it."
"/tmp/metabase-aws-eb")
(def ^:private archive-path "/tmp/metabase-aws-eb.zip")
(def ^:private html-file-path "/tmp/launch-aws-eb.html")
(defn- validate-json-docker-tag []
(u/step (format "Check that Dockerrun.aws.json Docker tag is %s" (c/docker-tag))
(u/step "Download archive"
(u/download-file! (c/artifact-download-url "metabase-aws-eb.zip") archive-path))
(u/step "Unzip archive"
(u/delete-file-if-exists! archive-temp-dir)
(u/sh "unzip" (u/assert-file-exists archive-path) "-d" archive-temp-dir))
(u/step "Validate JSON file"
(let [json (-> (u/assert-file-exists (u/filename (u/assert-file-exists archive-temp-dir) "Dockerrun.aws.json"))
slurp
(json/parse-string true))
tag (get-in json [:Image :Name])]
(u/announce "Docker tag is %s" tag)
(when-not (= tag (c/docker-tag))
(throw (ex-info "Incorrect Docker tag." {:expected (c/docker-tag)
:actual tag
:json json})))))))
(defn- validate-elastic-beanstalk-artifacts []
(u/step "Validate Elastic Beanstalk artifacts"
(common.http/check-url-exists (c/artifact-download-url "launch-aws-eb.html"))
(common.http/check-url-exists (c/artifact-download-url "metabase-aws-eb.zip"))
(validate-json-docker-tag)
(u/announce "Artifacts validated.")))
(defn- dockerrun-json-content []
{:AWSEBDockerrunVersion "1"
:Image {:Name (c/docker-tag)
:Update "true"}
:Ports [{:ContainerPort "3000"}]
:Logging "/var/log/metabase"})
(defn- create-archive! []
(u/step (format "Create metabase-aws-eb.zip for Docker image %s" (c/docker-tag))
(u/step "Create temp dir"
(u/delete-file-if-exists! archive-temp-dir)
(u/create-directory-unless-exists! archive-temp-dir))
(u/step "Generate Dockerrun.aws.json"
(spit (u/filename archive-temp-dir "Dockerrun.aws.json")
(json/generate-string (dockerrun-json-content) {:pretty true})))
(u/step "Copy .ebextensions"
(u/copy-file! eb-extensions-source (u/filename archive-temp-dir ".ebextensions")))
(u/step "Copy .platform"
(u/copy-file! eb-platform-source (u/filename archive-temp-dir ".platform")))
(u/step "Create metabase-aws-eb.zip"
(u/delete-file-if-exists! archive-path)
(u/sh {:dir archive-temp-dir} "zip" "--recurse-paths" archive-path ".")
(u/assert-file-exists archive-path))))
(def ^:private launch-template-filename
(u/assert-file-exists (u/filename c/root-directory "bin" "build" "src" "release" "elastic_beanstalk" "launch-aws-eb.html.template")))
(defn- create-html-file! []
(u/step (format "Create launch-aws-eb.html for Docker image %s" (c/docker-tag))
(u/delete-file-if-exists! html-file-path)
(spit html-file-path
(stencil/render (slurp launch-template-filename)
{:url (java.net.URLEncoder/encode (c/artifact-download-url "metabase-aws-eb.zip")
"UTF-8")}))
(u/assert-file-exists html-file-path)))
(defn- upload-artifacts! []
(u/step "Upload Elastic Beanstalk artifacts"
(u/step "Upload metabase-aws-eb.zip"
(common.upload/upload-artifact! archive-path "metabase-aws-eb.zip"))
(u/step "Upload launch-aws-eb.html"
(common.upload/upload-artifact! html-file-path "launch-aws-eb.html"))))
;; TODO -- we should merge the EB build logic into this script, it's still an ancient bash script
(defn publish-elastic-beanstalk-artifacts! []
(u/step "Create and publish Elastic Beanstalk artifacts"
(create-archive!)
(create-html-file!)
(upload-artifacts!))
(validate-elastic-beanstalk-artifacts))
######
# Metabase Report server Elastic Beanstalk configuration
# Modify the environmental variables below to customize your installation
# Comment out a variable to disable a feature
#####
container_commands:
01-persist_env_vars:
command: ".ebextensions/metabase_config/metabase-setup.sh set_up_env_vars"
ignoreErrors: false
02_install_papertrail:
command: ".ebextensions/metabase_config/metabase-setup.sh install_papertrail"
test: test $PAPERTRAIL_HOST
ignoreErrors: true
03_try_papertrail:
command: "/sbin/service remote_syslog restart"
test: test -e /etc/log_files.yml
ignoreErrors: true
04_install_inspector:
command: yum -q list installed AwsAgent &>/dev/null && echo "Inspector installed, nothing to do here" || curl -O https://inspector-agent.amazonaws.com/linux/latest/install | sudo bash
ignoreErrors: true
05-install_cloudwatch_agent:
command: sudo yum update && sudo yum upgrade -y && yum -q list installed amazon-cloudwatch-agent &>/dev/null && echo "Cloudwatch agent installed, nothing to do here" || sudo yum -y install https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
ignoreErrors: true
06-run_cloudwatch_agent:
command: sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:.ebextensions/metabase_config/cloudwatch/config.json -s
ignoreErrors: true
# NGINX will be disabled in future releases, this will make the trick
#option_settings:
# aws:elasticbeanstalk:environment:proxy:
# ProxyServer: "none"
\ No newline at end of file
{
"agent": {
"metrics_collection_interval": 60
},
"metrics": {
"namespace": "Metabase",
"metrics_collected": {
"cpu": {
"measurement": [
"time_active",
"time_guest",
"time_guest_nice",
"time_idle",
"time_iowait",
"time_irq",
"time_nice",
"time_softirq",
"time_steal",
"time_system",
"time_user",
"usage_active",
"usage_guest",
"usage_guest_nice",
"usage_idle",
"usage_iowait",
"usage_irq",
"usage_nice",
"usage_softirq",
"usage_steal",
"usage_system",
"usage_user"
],
"totalcpu": false
},
"disk": {
"measurement": [
"free",
"total",
"used",
"used_percent",
"inodes_free",
"inodes_used",
"inodes_total"
],
"ignore_file_system_types": [
"sysfs", "devtmpfs"
] },
"diskio": {
"measurement": [
"reads",
"writes",
"read_bytes",
"write_bytes",
"read_time",
"write_time",
"io_time",
"iops_in_progress"
]
},
"swap": {
"measurement": [
"free",
"used",
"used_percent"
]
},
"mem": {
"measurement": [
"active",
"available",
"available_percent",
"buffered",
"cached",
"free",
"inactive",
"total",
"used",
"used_percent"
]
},
"net": {
"measurement": [
"bytes_sent",
"bytes_recv",
"drop_in",
"drop_out",
"err_in",
"err_out",
"packets_sent",
"packets_recv"
]
},
"netstat": {
"measurement": [
"tcp_close",
"tcp_close_wait",
"tcp_closing",
"tcp_established",
"tcp_fin_wait1",
"tcp_fin_wait2",
"tcp_last_ack",
"tcp_listen",
"tcp_none",
"tcp_syn_sent",
"tcp_syn_recv",
"tcp_time_wait",
"udp_socket"
]
},
"processes": {
"measurement": [
"blocked",
"dead",
"idle",
"paging",
"running",
"sleeping",
"stopped",
"total",
"total_threads",
"wait",
"zombies"
]
}
},
"append_dimensions": {
"ImageId": "${aws:ImageId}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}",
"AutoScalingGroupName": "${aws:AutoScalingGroupName}"
},
"aggregation_dimensions" : [["InstanceId"], ["InstanceType"], ["InstanceId","InstanceType"]]
}
}
#!/bin/bash
####
# Metabase Report server Elastic Beanstalk metabase-setup.sh
# Modify the environmental variables to customize your installation
# Unset a variable to disable a feature
####
set_up_env_vars () {
# /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local
if grep -q "Amazon Linux 2" /etc/os-release; then
if [ ! -z "$RDS_HOSTNAME" ]; then
# sed -i 's/RDS_HOSTNAME/MB_DB_HOST/' /etc/profile.d/sh.local
sed -i 's/RDS_HOSTNAME/MB_DB_HOST/' /opt/elasticbeanstalk/deployment/env.list
# sed -i 's/RDS_USERNAME/MB_DB_USER/' /etc/profile.d/sh.local
sed -i 's/RDS_USERNAME/MB_DB_USER/' /opt/elasticbeanstalk/deployment/env.list
# sed -i 's/RDS_PASSWORD/MB_DB_PASS/' /etc/profile.d/sh.local
sed -i 's/RDS_PASSWORD/MB_DB_PASS/' /opt/elasticbeanstalk/deployment/env.list
# sed -i 's/RDS_PORT/MB_DB_PORT/' /etc/profile.d/sh.local
sed -i 's/RDS_PORT/MB_DB_PORT/' /opt/elasticbeanstalk/deployment/env.list
# sed -i 's/RDS_DB_NAME/MB_DB_DBNAME/' /etc/profile.d/sh.local
sed -i 's/RDS_DB_NAME/MB_DB_DBNAME/' /opt/elasticbeanstalk/deployment/env.list
if [ "$RDS_PORT" == "3306" ]; then
# echo 'export MB_DB_TYPE="mysql"' >> /etc/profile.d/sh.local
echo 'MB_DB_TYPE=mysql' >> /opt/elasticbeanstalk/deployment/env.list
else
# echo 'export MB_DB_TYPE="postgres"' >> /etc/profile.d/sh.local
echo 'MB_DB_TYPE=postgres' >> /opt/elasticbeanstalk/deployment/env.list
fi
fi
else
if [ ! -z "$RDS_HOSTNAME" ]; then
# sed -i 's/RDS_HOSTNAME/MB_DB_HOST/' /etc/profile.d/sh.local
sed -i 's/RDS_HOSTNAME/MB_DB_HOST/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
# sed -i 's/RDS_USERNAME/MB_DB_USER/' /etc/profile.d/sh.local
sed -i 's/RDS_USERNAME/MB_DB_USER/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
# sed -i 's/RDS_PASSWORD/MB_DB_PASS/' /etc/profile.d/sh.local
sed -i 's/RDS_PASSWORD/MB_DB_PASS/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
# sed -i 's/RDS_PORT/MB_DB_PORT/' /etc/profile.d/sh.local
sed -i 's/RDS_PORT/MB_DB_PORT/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
# sed -i 's/RDS_DB_NAME/MB_DB_DBNAME/' /etc/profile.d/sh.local
sed -i 's/RDS_DB_NAME/MB_DB_DBNAME/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
if [ "$RDS_PORT" == "3306" ]; then
# echo 'export MB_DB_TYPE="mysql"' >> /etc/profile.d/sh.local
sed -i 's/}}}}/,"MB_DB_TYPE":"mysql"}}}}/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
else
# echo 'export MB_DB_TYPE="postgres"' >> /etc/profile.d/sh.local
sed -i 's/}}}}/,"MB_DB_TYPE":"postgres"}}}}/' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
fi
fi
fi
}
# add files to papertrail
pt_files () {
sed -i '/ - .*/d' /etc/log_files.yml
set -f
for file in $PAPERTRAIL_FILES; do
sed -i 's|files:|files:\n - '$file'|' /etc/log_files.yml
done
set +f
}
# papertail remote host
pt_remote_host () {
sed -i "s/.*host:.*/ host: $PAPERTRAIL_HOST/" /etc/log_files.yml
}
# papertail remote port
pt_port () {
sed -i "s/.*port:.*/ port: $PAPERTRAIL_PORT/" /etc/log_files.yml
}
# papertail local host
pt_local_host () {
eval export PAPERTRAIL_HOSTNAME=$PAPERTRAIL_HOSTNAME # expand vars like $HOSTNAME
sed -i "s/.*hostname:.*/hostname: $PAPERTRAIL_HOSTNAME/" /etc/log_files.yml
}
# download, install and configure papertrail
install_papertrail () {
cp .ebextensions/metabase_config/papertrail/log_files.yml /etc/log_files.yml && chmod 644 /etc/log_files.yml
cp .ebextensions/metabase_config/papertrail/remote_syslog /etc/init.d/remote_syslog && chmod 555 /etc/init.d/remote_syslog
cd /tmp/
wget -q "https://github.com/papertrail/remote_syslog2/releases/download/v0.20/remote_syslog_linux_amd64.tar.gz" &&
tar xzf remote_syslog_linux_amd64.tar.gz
/sbin/service remote_syslog stop
mv /tmp/remote_syslog/remote_syslog /usr/local/bin/
rm -rf remote_syslog_linux_amd64.tar.gz remote_syslog
# Setup Papertrail
[[ "$PAPERTRAIL_HOST" ]] && pt_remote_host
[[ "$PAPERTRAIL_PORT" ]] && pt_port
[[ "$PAPERTRAIL_FILES" ]] && pt_files
[[ "$PAPERTRAIL_HOSTNAME" ]] && pt_local_host
}
case $1 in
set_up_env_vars)
set_up_env_vars
;;
install_papertrail)
install_papertrail
;;
esac
# /etc/log_files.yml - Papertrail
files:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
- /var/log/eb-*
- /var/log/eb-docker/containers/*/*.log
hostname:
destination:
host:
port:
protocol: tls
new_file_check_interval: "10" # Check every 10 seconds
#!/bin/bash
# /etc/init.d/remote_syslog
#
# remote_syslog This shell script takes care of starting and stopping
# remote_syslog daemon
#
# chkconfig: - 58 74
# description: papertrail/remote_syslog \
# https://github.com/papertrail/remote_syslog2/blob/master/examples/remote_syslog.init.d
### BEGIN INIT INFO
# Provides: remote_syslog
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $syslog $named ntpdate
# Should-Stop: $syslog $named
# Short-Description: start and stop remote_errolog
# Description: papertrail/remote_syslog2
# https://github.com/papertrail/remote_syslog2/blob/master/examples/remote_syslog.init.d
### END INIT INFO
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
prog="/usr/local/bin/remote_syslog"
config="/etc/log_files.yml"
pid_dir="/var/run"
EXTRAOPTIONS=""
pid_file="$pid_dir/remote_syslog.pid"
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
RETVAL=0
is_running(){
# Do we have PID-file?
if [ -f "$pid_file" ]; then
# Check if proc is running
pid=`cat "$pid_file" 2> /dev/null`
if [[ $pid != "" ]]; then
exepath=`readlink /proc/"$pid"/exe 2> /dev/null`
exe=`basename "$exepath"`
if [[ $exe == "remote_syslog" ]]; then
# Process is running
return 0
fi
fi
fi
return 1
}
start(){
echo -n $"Starting $prog: "
unset HOME MAIL USER USERNAME
$prog -c $config --pid-file=$pid_file $EXTRAOPTIONS
RETVAL=$?
echo
return $RETVAL
}
stop(){
echo -n $"Stopping $prog: "
if (is_running); then
kill `cat $pid_file`
RETVAL=$?
echo
return $RETVAL
else
echo "$pid_file not found"
fi
}
status(){
echo -n $"Checking for $pid_file: "
if (is_running); then
echo "found"
else
echo "not found"
fi
}
reload(){
restart
}
restart(){
stop
start
}
condrestart(){
is_running && restart
return 0
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
condrestart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
RETVAL=1
esac
exit $RETVAL
#!/bin/bash
if [[ "x$NGINX_FORCE_SSL" == "x1" ]]; then
cp .platform/nginx/nginx-ssl.conf /etc/nginx/nginx.conf && nginx -t && /sbin/service nginx restart
else
cp .platform/nginx/nginx.conf /etc/nginx/nginx.conf && nginx -t && /sbin/service nginx restart
fi
#!/bin/bash
if [[ "x$NGINX_FORCE_SSL" == "x1" ]]; then
cp .platform/nginx/nginx-ssl.conf /etc/nginx/nginx.conf && nginx -t && /sbin/service nginx restart
else
cp .platform/nginx/nginx.conf /etc/nginx/nginx.conf && nginx -t && /sbin/service nginx restart
fi
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65936;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include conf.d/*.conf;
map $http_upgrade $connection_upgrade {
default "upgrade";
}
server {
listen 80 default_server;
gzip on;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
access_log /var/log/nginx/access.log main;
location / {
if ($http_x_forwarded_proto != "https") {
rewrite ^ https://$host$request_uri? permanent;
}
proxy_pass http://docker;
proxy_http_version 1.1;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
# Include the Elastic Beanstalk generated locations
include conf.d/elasticbeanstalk/*.conf;
}
}
\ No newline at end of file
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65936;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include conf.d/*.conf;
map $http_upgrade $connection_upgrade {
default "upgrade";
}
server {
listen 80 default_server;
gzip on;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
access_log /var/log/nginx/access.log main;
location / {
proxy_pass http://docker;
proxy_http_version 1.1;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
# Include the Elastic Beanstalk generated locations
include conf.d/elasticbeanstalk/*.conf;
}
}
\ No newline at end of file
<!DOCTYPE html>
<meta charset="utf-8" />
<title>Redirecting...</title>
<link
rel="canonical"
href="https://console.aws.amazon.com/elasticbeanstalk/home?region=us-east-1#/newApplication?applicationName=Metabase&tierName=WebServer&platform=Docker&environmentType=LoadBalancing&sourceBundleUrl={{url}}&instanceType=t3a.small"
/>
<meta
http-equiv="refresh"
content="0; url=https://console.aws.amazon.com/elasticbeanstalk/home?region=us-east-1#/newApplication?applicationName=Metabase&tierName=WebServer&platform=Docker&environmentType=LoadBalancing&sourceBundleUrl={{url}}&instanceType=t3a.small"
/>
<h1>Redirecting...</h1>
<a
href="https://console.aws.amazon.com/elasticbeanstalk/home?region=us-east-1#/newApplication?applicationName=Metabase&tierName=WebServer&platform=Docker&environmentType=LoadBalancing&sourceBundleUrl={{url}}&instanceType=t3a.small"
>
Click here if you are not redirected.
</a>
<script>
location =
"https://console.aws.amazon.com/elasticbeanstalk/home?region=us-east-1#/newApplication?applicationName=Metabase&tierName=WebServer&platform=Docker&environmentType=LoadBalancing&sourceBundleUrl={{url}}&instanceType=t3a.small";
</script>
(ns release.elastic-beanstalk-test
(:require
[clojure.test :refer :all]
[release.common :as c]
[release.elastic-beanstalk :as release.eb]))
(deftest create-html-file-test
(testing "Just make sure this doesn't barf."
(binding [c/*build-options* (atom {:version "0.46.0-test"
:edition :oss})]
(is (string? (#'release.eb/create-html-file!))))))
#! /usr/bin/env bash
set -euo pipefail
# switch to project root directory if we're not already there
script_directory=`dirname "${BASH_SOURCE[0]}"`
cd "$script_directory/.."
source "./bin/check-clojure-cli.sh"
check_clojure_cli
source "./bin/clear-outdated-cpcaches.sh"
clear_outdated_cpcaches
clojure -X:build:build/publish-ebs $@
......@@ -571,18 +571,10 @@
;; :upload-uberjar
;; :push-git-tags
;; :publish-draft-release
;; :publish-elastic-beanstalk-artifacts
;; :update-version-info
:build/release
{:exec-fn release/release}
;; Only in the CI for now: publish EBS artifact
;; FIXME: remove after full release automation on CI
;;
;; clojure -X:build:build/publish-ebs
:build/publish-ebs
{:exec-fn release/publish-ebs}
;; extra paths and deps for working on build scripts, or running the tests.
:build-dev
{:extra-paths ["bin/build/test"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment