summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShyam Sunder <sgsunder1@gmail.com>2021-09-15 16:06:48 -0400
committerShyam Sunder <sgsunder1@gmail.com>2021-09-19 11:01:47 -0400
commit4f57f49ebe5395a4c3a8e20c84c5d881c9f98dfc (patch)
treec537531616d1e75ded332d38959c90185bf8ba72
parentf58079e12edd3c4dcc3f8b8dab572207b235aeff (diff)
client+server: migrate to GitHub actions
-rw-r--r--.github/workflows/build-containers.yml93
-rw-r--r--.github/workflows/run-unit-tests.yml16
-rwxr-xr-xclient/hooks/build16
-rwxr-xr-xclient/hooks/post_push19
-rwxr-xr-xserver/hooks/build7
-rwxr-xr-xserver/hooks/post_push19
-rwxr-xr-xserver/hooks/test8
7 files changed, 109 insertions, 69 deletions
diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml
new file mode 100644
index 0000000..41baea7
--- /dev/null
+++ b/.github/workflows/build-containers.yml
@@ -0,0 +1,93 @@
+name: build-containers
+on: [push]
+jobs:
+ build-client:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Determine metadata
+ run: |
+ CLOSEST_VER="$(git describe --tags --abbrev=0 $GITHUB_SHA)"
+ CLOSEST_MAJOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f1)"
+ CLOSEST_MINOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f2)"
+ SHORT_COMMIT=$(echo $GITHUB_SHA | cut -c1-8)
+ BUILD_INFO="v${CLOSEST_VER}-${SHORT_COMMIT}"
+ BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
+
+ echo "major_tag=${CLOSEST_MAJOR_VER}" >> $GITHUB_ENV
+ echo "minor_tag=${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}" >> $GITHUB_ENV
+ echo "build_info=${BUILD_INFO}" >> $GITHUB_ENV
+ echo "build_date=${BUILD_DATE}" >> $GITHUB_ENV
+
+ echo "Build Info: ${BUILD_INFO}"
+ echo "Build Date: ${BUILD_DATE}"
+
+ - name: Build container
+ run: >
+ docker build
+ --build-arg BUILD_INFO=${{ env.build_info }}
+ --build-arg BUILD_DATE=${{ env.build_date }}
+ --build-arg SOURCE_COMMIT=$GITHUB_SHA
+ --build-arg DOCKER_REPO=szurubooru/client
+ -t "szurubooru/client:latest"
+ -t "szurubooru/client:${{ env.major_tag }}"
+ -t "szurubooru/client:${{ env.minor_tag }}"
+ ./client
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_PASSWORD }}
+
+ - name: Push containers
+ run: docker push -a szurubooru/client
+
+ build-server:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Determine metadata
+ run: |
+ CLOSEST_VER="$(git describe --tags --abbrev=0 $GITHUB_SHA)"
+ CLOSEST_MAJOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f1)"
+ CLOSEST_MINOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f2)"
+ SHORT_COMMIT=$(echo $GITHUB_SHA | cut -c1-8)
+ BUILD_INFO="v${CLOSEST_VER}-${SHORT_COMMIT}"
+ BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
+
+ echo "major_tag=${CLOSEST_MAJOR_VER}" >> $GITHUB_ENV
+ echo "minor_tag=${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}" >> $GITHUB_ENV
+ echo "build_info=${BUILD_INFO}" >> $GITHUB_ENV
+ echo "build_date=${BUILD_DATE}" >> $GITHUB_ENV
+
+ echo "Build Info: ${BUILD_INFO}"
+ echo "Build Date: ${BUILD_DATE}"
+
+ - name: Build container
+ run: >
+ docker build
+ --build-arg BUILD_DATE=${{ env.build_date }}
+ --build-arg SOURCE_COMMIT=$GITHUB_SHA
+ --build-arg DOCKER_REPO=szurubooru/server
+ -t "szurubooru/server:latest"
+ -t "szurubooru/server:${{ env.major_tag }}"
+ -t "szurubooru/server:${{ env.minor_tag }}"
+ ./server
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_PASSWORD }}
+
+ - name: Push containers
+ run: docker push -a szurubooru/server
diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml
new file mode 100644
index 0000000..87ab4e8
--- /dev/null
+++ b/.github/workflows/run-unit-tests.yml
@@ -0,0 +1,16 @@
+name: run-unit-tests
+on: [pull_request]
+jobs:
+ test-server:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Build test container
+ run: |
+ TAG=$(docker build --target testing -q ./server)
+ echo "image_tag=${TAG}" >> $GITHUB_ENV
+
+ - name: Run unit tests
+ run: docker run --rm -t ${{ env.image_tag }} --color=no szurubooru/
diff --git a/client/hooks/build b/client/hooks/build
deleted file mode 100755
index 46443f4..0000000
--- a/client/hooks/build
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-CLOSEST_VER=$(git describe --tags --abbrev=0 ${SOURCE_COMMIT})
-if git describe --exact-match --abbrev=0 ${SOURCE_COMMIT} 2> /dev/null; then
- BUILD_INFO="v${CLOSEST_VER}"
-else
- BUILD_INFO="v${CLOSEST_VER}-edge-$(git rev-parse --short ${SOURCE_COMMIT})"
-fi
-
-echo "Using BUILD_INFO=${BUILD_INFO}"
-docker build \
- --build-arg BUILD_INFO=${BUILD_INFO} \
- --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
- --build-arg SOURCE_COMMIT \
- --build-arg DOCKER_REPO \
- -f $DOCKERFILE_PATH -t $IMAGE_NAME .
diff --git a/client/hooks/post_push b/client/hooks/post_push
deleted file mode 100755
index 1b1e0ad..0000000
--- a/client/hooks/post_push
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-add_tag() {
- echo "Also tagging image as ${DOCKER_REPO}:${1}"
- docker tag $IMAGE_NAME $DOCKER_REPO:$1
- docker push $DOCKER_REPO:$1
-}
-
-CLOSEST_VER=$(git describe --tags --abbrev=0)
-CLOSEST_MAJOR_VER=$(echo ${CLOSEST_VER} | cut -d'.' -f1)
-CLOSEST_MINOR_VER=$(echo ${CLOSEST_VER} | cut -d'.' -f2)
-
-add_tag "${CLOSEST_MAJOR_VER}-edge"
-add_tag "${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}-edge"
-
-if git describe --exact-match --abbrev=0 2> /dev/null; then
- add_tag "${CLOSEST_MAJOR_VER}"
- add_tag "${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}"
-fi
diff --git a/server/hooks/build b/server/hooks/build
deleted file mode 100755
index b5e914b..0000000
--- a/server/hooks/build
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-docker build \
- --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
- --build-arg SOURCE_COMMIT \
- --build-arg DOCKER_REPO \
- -f $DOCKERFILE_PATH -t $IMAGE_NAME .
diff --git a/server/hooks/post_push b/server/hooks/post_push
deleted file mode 100755
index 1b1e0ad..0000000
--- a/server/hooks/post_push
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-add_tag() {
- echo "Also tagging image as ${DOCKER_REPO}:${1}"
- docker tag $IMAGE_NAME $DOCKER_REPO:$1
- docker push $DOCKER_REPO:$1
-}
-
-CLOSEST_VER=$(git describe --tags --abbrev=0)
-CLOSEST_MAJOR_VER=$(echo ${CLOSEST_VER} | cut -d'.' -f1)
-CLOSEST_MINOR_VER=$(echo ${CLOSEST_VER} | cut -d'.' -f2)
-
-add_tag "${CLOSEST_MAJOR_VER}-edge"
-add_tag "${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}-edge"
-
-if git describe --exact-match --abbrev=0 2> /dev/null; then
- add_tag "${CLOSEST_MAJOR_VER}"
- add_tag "${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}"
-fi
diff --git a/server/hooks/test b/server/hooks/test
deleted file mode 100755
index b325186..0000000
--- a/server/hooks/test
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-set -e
-
-docker run --rm \
- -t $(docker build --target testing -q .) \
- --color=no szurubooru/
-
-exit $?