From c9cd00a0558cdb2d432da5b1c06e5aad823717f1 Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Tue, 31 Mar 2026 19:58:43 -0700 Subject: [PATCH] fix: handle existing git tags and use DOCKER_LOGIN/DOCKER_PASSWORD secrets --- .gitea/workflows/release.yml | 32 ++++++++++++++++++++++++-------- CHANGELOG.md | 19 +++++++++++++++++++ package.json | 2 +- scripts/bump-version.js | 1 + 4 files changed, 45 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 70d567f..cd48527 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -62,19 +62,35 @@ jobs: - name: Create git tag for release run: | - git tag -a "v${{ steps.version.outputs.version }}" -m "Release v${{ steps.version.outputs.version }}" - git push origin "v${{ steps.version.outputs.version }}" + TAG_NAME="v${{ steps.version.outputs.version }}" + # Check if tag already exists + if git rev-parse "$TAG_NAME" >/dev/null 2>&1; then + echo "Tag $TAG_NAME already exists, skipping creation" + else + echo "Creating tag $TAG_NAME" + git tag -a "$TAG_NAME" -m "Release $TAG_NAME" + fi + # Always try to push (in case tag exists locally but not remotely) + git push origin "$TAG_NAME" || echo "Tag push failed (may already exist remotely)" - name: Push Docker images run: | echo "Pushing to ${{ env.REGISTRY }}..." - # Check if we can authenticate to the registry - if docker login ${{ env.REGISTRY }} -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} 2>/dev/null; then - docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }} - docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - echo "Successfully pushed images to ${{ env.REGISTRY }}" + # Check if we can authenticate to the registry using DOCKER_LOGIN and DOCKER_PASSWORD secrets + if [ -n "${{ secrets.DOCKER_LOGIN }}" ] && [ -n "${{ secrets.DOCKER_PASSWORD }}" ]; then + if docker login ${{ env.REGISTRY }} -u ${{ secrets.DOCKER_LOGIN }} -p ${{ secrets.DOCKER_PASSWORD }} 2>/dev/null; then + docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }} + docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + echo "Successfully pushed images to ${{ env.REGISTRY }}" + else + echo "Warning: Docker login failed with provided credentials" + echo "Images built locally but not pushed to registry" + echo "Manual push required:" + echo " docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}" + echo " docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" + fi else - echo "Warning: Could not authenticate to ${{ env.REGISTRY }}" + echo "Warning: DOCKER_LOGIN or DOCKER_PASSWORD secrets not configured" echo "Images built locally but not pushed to registry" echo "Manual push required:" echo " docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 98d6c33..8b25b2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +## [0.1.2] - 2026-04-01 + +### Patch Changes + +- fix: handle Docker registry authentication gracefully in release workflow +- fix: run unit tests on branch commits, skip main branch +- feat: add test workflow for every commit +- trigger: release with test-capable image +- feat: build test-capable image, run tests, then build production image +- trigger: release workflow +- fix: release workflow should not commit, only tag +- trigger: manual workflow trigger for docker.notsosm.art +- fix: update Docker build script to use docker.notsosm.art registry +- fix: update workflow to use docker.notsosm.art registry +- trigger: manual workflow trigger +- fix: update workflow to use correct Docker registries +- feat: add Gitea Actions release workflow +- feat: add view match link to admin matches page + ## [0.1.1] - 2026-04-01 ### Patch Changes diff --git a/package.json b/package.json index cdf1f63..c66dbc2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "euchre_camp", - "version": "0.1.1", + "version": "0.1.2", "private": true, "scripts": { "dev": "NEXT_PUBLIC_GIT_COMMIT=$(git rev-parse --short HEAD) next dev", diff --git a/scripts/bump-version.js b/scripts/bump-version.js index 8012174..989a4b7 100755 --- a/scripts/bump-version.js +++ b/scripts/bump-version.js @@ -17,6 +17,7 @@ const path = require('path'); // Parse command line arguments const args = process.argv.slice(2); const forcedVersion = args[0]; // e.g., "0.2.0" or "patch/minor/major" +const skipConfirm = args.includes('--yes') || args.includes('-y'); // Skip confirmation prompt // Paths const packageJsonPath = path.join(__dirname, '..', 'package.json');