Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ FROM alpine:3.16 AS runner
bash scripts/install/make.sh && \
make install-hugo

ENTRYPOINT ["./scripts/blog.docker-entrypoint.sh"]
ENTRYPOINT [".docker/scripts/blog.docker-entrypoint.sh"]
CMD ["hugo"]
EXPOSE ${BLOG_PORT}
14 changes: 14 additions & 0 deletions .docker/dockerfiles/ci.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM alpine:3.16 AS runner
LABEL maintainer="Airscript <[email protected]>"
WORKDIR /tmp
COPY tmp/ /tmp/

RUN \
sh scripts/update.sh && \
sh scripts/install/bash.sh && \
bash scripts/install/make.sh && \
make install-curl && \
make install-circleci-cli

ENTRYPOINT [ ".docker/scripts/ci.docker-entrypoint.sh" ]
CMD ["circleci"]
14 changes: 14 additions & 0 deletions .docker/dockerfiles/tests.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM alpine:3.16 AS runner
LABEL maintainer="Airscript <[email protected]>"
WORKDIR /tmp
COPY tmp/ /tmp/

RUN \
sh scripts/update.sh && \
sh scripts/install/bash.sh && \
bash scripts/install/make.sh && \
make install-npm && \
make install-bats

ENTRYPOINT [".docker/scripts/tests.docker-entrypoint.sh"]
CMD ["bats"]
10 changes: 10 additions & 0 deletions .docker/scripts/ci.docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
set -e

if [ "$1" = 'circleci' ]; then
circleci config validate .circleci/config.yml
circleci config validate .circleci/workflows.yml

else
exec "$@"
fi
14 changes: 0 additions & 14 deletions .docker/tests.Dockerfile

This file was deleted.

38 changes: 33 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
SHELL = /bin/sh
TESTS_IMAGE_NAME = airscript/tests:base
CI_IMAGE_NAME = airscript/ci:base

.SUFFIXES:
.SUFFIXES: .sh
Expand Down Expand Up @@ -33,15 +34,34 @@ clean-tests:
.PHONY: build-tests
build-tests:
mkdir -p tmp && \
cp -r .git scripts tests Makefile tmp && \
docker build -f .docker/tests.Dockerfile -t $(TESTS_IMAGE_NAME) .; \
cp -r .git .docker scripts tests Makefile tmp && \
docker build -f .docker/dockerfiles/tests.Dockerfile -t $(TESTS_IMAGE_NAME) .; \
rm -rf tmp

.PHONY: run-tests
run-tests:
docker run --rm -it $(TESTS_IMAGE_NAME) && \
docker rmi $(TESTS_IMAGE_NAME)

.PHONY: all-ci-configs
all-ci-configs: build-ci-configs run-ci-configs

.PHONY: clean-ci-configs
clean-ci-configs:
docker rmi $(CI_IMAGE_NAME)

.PHONY: build-ci-configs
build-ci-configs:
mkdir -p tmp && \
cp -r .circleci .docker scripts Makefile tmp && \
docker build -f .docker/dockerfiles/ci.Dockerfile -t $(CI_IMAGE_NAME) .; \
rm -rf tmp

.PHONY: run-ci-configs
run-ci-configs:
docker run --rm -it $(CI_IMAGE_NAME) && \
docker rmi $(CI_IMAGE_NAME)

.PHONY: install-bash
install-bash:
sh ./scripts/install/bash.sh
Expand All @@ -54,9 +74,9 @@ install-bats:
install-npm:
bash ./scripts/install/npm.sh

.PHONY: install-netlify-cli
install-netlify-cli:
bash ./scripts/install/netlify-cli.sh
.PHONY: install-curl
install-curl:
bash ./scripts/install/curl.sh

.PHONY: install-hugo
install-hugo:
Expand All @@ -70,6 +90,14 @@ install-git:
install-docker-cli:
bash ./scripts/install/docker-cli.sh

.PHONY: install-circleci-cli
install-circleci-cli:
bash ./scripts/install/circleci-cli.sh

.PHONY: install-netlify-cli
install-netlify-cli:
bash ./scripts/install/netlify-cli.sh

.PHONY: verify-ci
verify-ci:
bash ./scripts/ci/verify.sh $(environment)
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ services:

build:
context: .
dockerfile: ".docker/blog.Dockerfile"
dockerfile: ".docker/dockerfiles/blog.Dockerfile"

args:
BLOG_BUILD_ENVIRONMENT: compose
2 changes: 1 addition & 1 deletion scripts/docker/build.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash
echo "Building Docker image..."
docker build -f .docker/blog.Dockerfile -t airscript/blog:$1 .
docker build -f .docker/dockerfiles/blog.Dockerfile -t airscript/blog:$1 .
Empty file modified scripts/install/bats.sh
100644 → 100755
Empty file.
3 changes: 3 additions & 0 deletions scripts/install/circleci-cli.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash
curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | bash && \
echo "CircleCI CLI installed successfully."
3 changes: 3 additions & 0 deletions scripts/install/curl.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash
apk add curl && \
echo "curl installed successfully."
22 changes: 20 additions & 2 deletions tests/install.bats
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,29 @@ setup() {
@test "Install npm" {
run ./scripts/install/npm.sh
assert_output --partial "$INSTALL_NPM"
refute_output --partial "ERR!"
refute_output --partial "ERROR"
}

@test "Install Netlify CLI" {
run ./scripts/install/netlify-cli.sh
assert_output --partial "$INSTALL_NETLIFY_CLI"
refute_output --partial "ERR!"
}
}

@test "Install Bats" {
run ./scripts/install/bats.sh
assert_output --partial "$INSTALL_BATS"
refute_output --partial "ERR!"
}

@test "Install curl" {
run ./scripts/install/curl.sh
assert_output --partial "$INSTALL_CURL"
refute_output --partial "ERROR"
}

@test "Install CircleCI CLI" {
run ./scripts/install/circleci-cli.sh
assert_output --partial "$INSTALL_CIRCLECI_CLI"
refute_output --partial "404"
}
3 changes: 3 additions & 0 deletions tests/mocks.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
#!/bin/bash
readonly INSTALL_NPM="npm installed successfully."
readonly INSTALL_GIT="Git installed successfully."
readonly INSTALL_BATS="Bats installed successfully."
readonly INSTALL_HUGO="Hugo installed successfully."
readonly INSTALL_MAKE="Make installed successfully."
readonly INSTALL_CURL="curl installed successfully."
readonly INSTALL_BASH="Bash installed successfully."
readonly SKIP_INSTALL_GIT="Git installation has been skipped."
readonly INSTALL_DOCKER_CLI="Docker CLI installed successfully."
readonly INSTALL_NETLIFY_CLI="Netlify CLI installed successfully."
readonly ADD_GIT_SUBMODULE_SKIPPED="Git submodule update skipped."
readonly INSTALL_CIRCLECI_CLI="CircleCI CLI installed successfully."
readonly ADD_GIT_SUBMODULE_EXECUTED="Git submodule update executed."