diff --git a/.gitea/workflows/docker-publish.yml b/.gitea/workflows/docker-publish.yml new file mode 100644 index 0000000..8f63dad --- /dev/null +++ b/.gitea/workflows/docker-publish.yml @@ -0,0 +1,50 @@ +name: Build and Publish Docker Image + +on: + push: + branches: [master] + tags: ['*'] # triggers on any tag push + workflow_dispatch: + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Registry + run: echo "${{ secrets.PASSWORD }}" | docker login ${{ secrets.REGISTRY }} -u "${{ secrets.USERNAME }}" --password-stdin + + - name: Determine Version + id: version + run: | + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + else + echo "VERSION=$(jq -r .version package.json)" >> $GITHUB_OUTPUT + fi + - name: Build and Push Docker Images + run: | + IMAGE_NAME="bobbytviptv_suzie" + REGISTRY="${{ secrets.REGISTRY }}" + USERNAME="${{ secrets.USERNAME }}" + VERSION="${{ steps.version.outputs.VERSION }}" + IMAGE_VERSIONED="$REGISTRY/$USERNAME/$IMAGE_NAME:$VERSION" + IMAGE_LATEST="$REGISTRY/$USERNAME/$IMAGE_NAME:latest" + + echo "🔧 Building $IMAGE_VERSIONED" + docker build --build-arg VERSION=$VERSION -t "$IMAGE_VERSIONED" . + + echo "🏷️ Tagging as $IMAGE_LATEST" + docker tag "$IMAGE_VERSIONED" "$IMAGE_LATEST" + + echo "📤 Pushing $IMAGE_VERSIONED" + docker push "$IMAGE_VERSIONED" + + echo "📤 Pushing $IMAGE_LATEST" + docker push "$IMAGE_LATEST" diff --git a/Dockerfile b/Dockerfile index ddc6eb0..f797d33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,7 @@ -FROM node:12-alpine +FROM node:18-alpine + +ARG VERSION +LABEL version=$VERSION # Create app directory WORKDIR /usr/src/app