diff --git a/.forgejo/workflows/docker-build.yml b/.forgejo/workflows/docker-build.yml new file mode 100644 index 0000000..3f2c2bb --- /dev/null +++ b/.forgejo/workflows/docker-build.yml @@ -0,0 +1,71 @@ +name: Build & Push Docker Image + +on: + push: + branches: [main, master] + tags: ['v*'] + workflow_dispatch: + inputs: + api_url: + description: 'API URL for frontend build' + required: false + default: 'http://ut.khoavo.myds.me:8981/api' + type: string + +jobs: + build: + runs-on: ubuntu-latest + container: + image: docker:27-dind + options: --privileged + steps: + - name: Docker info + run: | + docker version + docker info + + - name: Checkout + run: | + apk add --no-cache git + git clone https://vndangkhoa:Thieugia19@git.khoavo.myds.me/vndangkhoa/kv-tube.git /tmp/kv-tube + cd /tmp/kv-tube + git checkout ${GITHUB_SHA:-main} + echo "Checked out: $(git rev-parse --short HEAD)" + + - name: Login to registry + run: | + echo "Thieugia19" | docker login git.khoavo.myds.me -u vndangkhoa --password-stdin + + - name: Build and push + run: | + cd /tmp/kv-tube + SHA_SHORT=$(git rev-parse --short HEAD) + IMAGE="git.khoavo.myds.me/vndangkhoa/kv-tube" + TAGS="${IMAGE}:${SHA_SHORT}" + if [ "${GITHUB_REF}" = "refs/heads/main" ] || [ "${GITHUB_REF}" = "refs/heads/master" ]; then + TAGS="${TAGS},${IMAGE}:main" + fi + if echo "${GITHUB_REF}" | grep -q "refs/tags/v"; then + VERSION=${GITHUB_REF#refs/tags/v} + TAGS="${TAGS},${IMAGE}:${VERSION},${IMAGE}:latest" + fi + echo "Building tags: ${TAGS}" + + TAG_ARGS="" + IFS=',' read -ra TAG_ARRAY <<< "${TAGS}" + for tag in "${TAG_ARRAY[@]}"; do + TAG_ARGS="${TAG_ARGS} -t ${tag}" + done + + docker build \ + ${TAG_ARGS} \ + --build-arg NEXT_PUBLIC_API_URL=${{ github.event.inputs.api_url || 'http://ut.khoavo.myds.me:8981/api' }} \ + . + + for tag in "${TAG_ARRAY[@]}"; do + echo "Pushing ${tag}..." + docker push "${tag}" + done + + - name: Verify + run: docker images | grep kv-tube diff --git a/.forgejo/workflows/test-step.yml b/.forgejo/workflows/test-step.yml deleted file mode 100644 index ca209bf..0000000 --- a/.forgejo/workflows/test-step.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Test Step - -on: push - -jobs: - test: - runs-on: docker - steps: - - name: Hello - run: echo "hello" - - name: Docker version - run: docker version