From 4bf86ca99f98dac209fb2a5d4db6b52553c6dff4 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 5 Jan 2026 16:08:47 +0100 Subject: [PATCH 1/6] fix duration, upd build --- .github/workflows/branch.yml | 4 +- .github/workflows/new-release.yml | 43 +++++++++++++++++++ .github/workflows/pr.yml | 2 +- .github/workflows/release.yml | 4 +- ...mage-new.yml => workflow-docker-image.yml} | 34 +++------------ .github/workflows/workflow-electron.yml | 6 ++- .github/workflows/workflow-jar.yml | 6 ++- .../domain/workout/WorkoutDetails.kt | 2 - 8 files changed, 63 insertions(+), 38 deletions(-) create mode 100644 .github/workflows/new-release.yml rename .github/workflows/{workflow-docker-image-new.yml => workflow-docker-image.yml} (59%) diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 1106790c..2d97e17b 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -30,10 +30,10 @@ jobs: jar-name: tp2intervals jar-artifact-name: tp2intervals-jar - docker-image-new: + docker-image: needs: - jar - uses: ./.github/workflows/workflow-docker-image-new.yml + uses: ./.github/workflows/workflow-docker-image.yml secrets: inherit with: jar-name: tp2intervals diff --git a/.github/workflows/new-release.yml b/.github/workflows/new-release.yml new file mode 100644 index 00000000..c3cdc164 --- /dev/null +++ b/.github/workflows/new-release.yml @@ -0,0 +1,43 @@ +name: Release + +on: + pull_request: + workflow_dispatch: + +jobs: + jar: + uses: ./.github/workflows/workflow-jar.yml + secrets: inherit + with: + + jar-name: tp2intervals + jar-artifact-name: tp2intervals-jar + dry-run: true + + docker-image: + needs: + - jar + uses: ./.github/workflows/workflow-docker-image.yml + secrets: inherit + with: + jar-name: tp2intervals + jar-artifact-name: tp2intervals-jar + dry-run: true + + electron: + needs: + - jar + strategy: + matrix: + environment: + - os: ubuntu-latest + - os: macos-latest + - os: windows-latest + + uses: ./.github/workflows/workflow-electron.yml + secrets: inherit + with: + jar-name: tp2intervals + jar-artifact-name: tp2intervals-jar + os: ${{ matrix.environment.os }} + dry-run: true diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 2d57c09d..41f576f1 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -19,7 +19,7 @@ jobs: docker-image: needs: - jar - uses: ./.github/workflows/workflow-docker-image-new.yml + uses: ./.github/workflows/workflow-docker-image.yml with: jar-name: tp2intervals jar-artifact-name: tp2intervals-jar diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 52169821..a5227156 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,10 +14,10 @@ jobs: jar-artifact-name: tp2intervals-jar dry-run: false - docker-image-new: + docker-image: needs: - jar - uses: ./.github/workflows/workflow-docker-image-new.yml + uses: ./.github/workflows/workflow-docker-image.yml secrets: inherit with: jar-name: tp2intervals diff --git a/.github/workflows/workflow-docker-image-new.yml b/.github/workflows/workflow-docker-image.yml similarity index 59% rename from .github/workflows/workflow-docker-image-new.yml rename to .github/workflows/workflow-docker-image.yml index bf2076ce..7b01b2db 100644 --- a/.github/workflows/workflow-docker-image-new.yml +++ b/.github/workflows/workflow-docker-image.yml @@ -1,13 +1,12 @@ name: Docker Image -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - on: workflow_call: inputs: + version: + required: false + type: string + default: 'dev' jar-name: required: true type: string @@ -20,12 +19,9 @@ on: default: true env: - # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io - # github.repository as / IMAGE_NAME: ${{ github.repository }} - jobs: build: @@ -33,8 +29,6 @@ jobs: permissions: contents: read packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. id-token: write steps: @@ -46,8 +40,6 @@ jobs: name: ${{ inputs.jar-artifact-name }} path: artifact - # Install the cosign tool except on PR - # https://github.com/sigstore/cosign-installer - name: Install cosign if: ${{ inputs.dry-run == false }} uses: sigstore/cosign-installer@v3.8.1 @@ -57,14 +49,9 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v3 - # Set up BuildKit Docker container builder to be able to build - # multi-platform images and export cache - # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 # v3.0.0 - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: ${{ inputs.dry-run == false }} uses: docker/login-action@v3 # v3.0.0 @@ -73,21 +60,18 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - # Extract metadata (tags, labels) for Docker - # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta uses: docker/metadata-action@v5 # v5.0.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | + type=raw,value=${{ inputs.version }} type=raw,value=latest,enable={{is_default_branch}} type=ref,event=tag type=ref,event=branch type=ref,event=pr - # Build and push Docker image with Buildx (don't push on PR) - # https://github.com/docker/build-push-action - name: Build and push Docker image id: build-and-push uses: docker/build-push-action@v6 # v5.0.0 @@ -101,17 +85,9 @@ jobs: platforms: linux/amd64,linux/arm64 build-args: "JAR_PATH=artifact/${{ inputs.jar-name }}.jar" - # Sign the resulting Docker image digest except on PRs. - # This will only write to the public Rekor transparency log when the Docker - # repository is public to avoid leaking data. If you would like to publish - # transparency data even for private images, pass --force to cosign below. - # https://github.com/sigstore/cosign - name: Sign the published Docker image if: ${{ inputs.dry-run == false }} env: - # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable TAGS: ${{ steps.meta.outputs.tags }} DIGEST: ${{ steps.build-and-push.outputs.digest }} - # This step uses the identity token to provision an ephemeral certificate - # against the sigstore community Fulcio instance. run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST} diff --git a/.github/workflows/workflow-electron.yml b/.github/workflows/workflow-electron.yml index d5070d80..c46f6db5 100644 --- a/.github/workflows/workflow-electron.yml +++ b/.github/workflows/workflow-electron.yml @@ -3,6 +3,10 @@ name: Workflow Electron on: workflow_call: inputs: + version: + required: false + type: string + default: 'dev' jar-name: required: true type: string @@ -46,7 +50,7 @@ jobs: if: ${{ inputs.dry-run == false }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npm run publish --prefix electron + run: npm run publish --prefix electron -- -c.extraMetadata.version=${{ inputs.version }} - name: Show me what you got run: ls electron/dist diff --git a/.github/workflows/workflow-jar.yml b/.github/workflows/workflow-jar.yml index bb1c3050..8445515c 100644 --- a/.github/workflows/workflow-jar.yml +++ b/.github/workflows/workflow-jar.yml @@ -3,6 +3,10 @@ name: Workflow JAR on: workflow_call: inputs: + version: + required: false + type: string + default: 'dev' jar-name: required: true type: string @@ -50,7 +54,7 @@ jobs: APP_DEFAULT_CONFIG_TRAINER_ROAD_REMOVE_HTML_TAGS: true run: | cd ./boot - ./gradlew build + ./gradlew build -Pversion=${{ inputs.version }} - name: Cypress tests run: | diff --git a/boot/src/main/kotlin/org/freekode/tp2intervals/domain/workout/WorkoutDetails.kt b/boot/src/main/kotlin/org/freekode/tp2intervals/domain/workout/WorkoutDetails.kt index 63c8ca43..f223e7e6 100644 --- a/boot/src/main/kotlin/org/freekode/tp2intervals/domain/workout/WorkoutDetails.kt +++ b/boot/src/main/kotlin/org/freekode/tp2intervals/domain/workout/WorkoutDetails.kt @@ -23,7 +23,6 @@ data class WorkoutDetails( other as WorkoutDetails if (name != other.name) return false - if (duration != other.duration) return false if (externalData != other.externalData) return false return true @@ -31,7 +30,6 @@ data class WorkoutDetails( override fun hashCode(): Int { var result = name.hashCode() - result = 31 * result + (duration?.hashCode() ?: 0) result = 31 * result + externalData.hashCode() return result } From e907aaa82e01b4c336e4c98387cb30c87f40ee39 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 5 Jan 2026 16:09:57 +0100 Subject: [PATCH 2/6] upd build --- .github/workflows/new-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/new-release.yml b/.github/workflows/new-release.yml index c3cdc164..8e0ae031 100644 --- a/.github/workflows/new-release.yml +++ b/.github/workflows/new-release.yml @@ -1,4 +1,4 @@ -name: Release +name: New Release on: pull_request: From a66324b53c675603129fd582cd044b9f078903fb Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 5 Jan 2026 16:23:48 +0100 Subject: [PATCH 3/6] upd build --- .github/workflows/new-release.yml | 2 +- .github/workflows/workflow-docker-image.yml | 2 -- .github/workflows/workflow-jar.yml | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/new-release.yml b/.github/workflows/new-release.yml index 8e0ae031..576618a7 100644 --- a/.github/workflows/new-release.yml +++ b/.github/workflows/new-release.yml @@ -22,7 +22,7 @@ jobs: with: jar-name: tp2intervals jar-artifact-name: tp2intervals-jar - dry-run: true + dry-run: false electron: needs: diff --git a/.github/workflows/workflow-docker-image.yml b/.github/workflows/workflow-docker-image.yml index 7b01b2db..1954bec7 100644 --- a/.github/workflows/workflow-docker-image.yml +++ b/.github/workflows/workflow-docker-image.yml @@ -69,8 +69,6 @@ jobs: type=raw,value=${{ inputs.version }} type=raw,value=latest,enable={{is_default_branch}} type=ref,event=tag - type=ref,event=branch - type=ref,event=pr - name: Build and push Docker image id: build-and-push diff --git a/.github/workflows/workflow-jar.yml b/.github/workflows/workflow-jar.yml index 8445515c..ef2e2cce 100644 --- a/.github/workflows/workflow-jar.yml +++ b/.github/workflows/workflow-jar.yml @@ -65,7 +65,7 @@ jobs: --app.default-config.training-peaks.auth-cookie=${{ secrets.TRAINING_PEAKS_AUTH_COOKIE }} \ & npm test --prefix cypress - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: ${{ inputs.jar-artifact-name }} path: boot/build/libs/${{ inputs.jar-name }}.jar From 6b568495c663405e10a1a6b72ab48157044440fb Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 5 Jan 2026 16:31:34 +0100 Subject: [PATCH 4/6] upd build --- .github/workflows/workflow-electron.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow-electron.yml b/.github/workflows/workflow-electron.yml index c46f6db5..5ad3928c 100644 --- a/.github/workflows/workflow-electron.yml +++ b/.github/workflows/workflow-electron.yml @@ -44,7 +44,7 @@ jobs: - name: Build electron if: ${{ inputs.dry-run == true }} - run: npm run build --prefix electron + run: npm run build --prefix electron -- -c.extraMetadata.version=${{ inputs.version }} - name: Publish electron if: ${{ inputs.dry-run == false }} From 3f9e57bba737831224ec653084a21511d98c88e8 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 5 Jan 2026 16:31:44 +0100 Subject: [PATCH 5/6] upd build --- .github/workflows/pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 41f576f1..8f479176 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -1,7 +1,7 @@ name: Build PR on: - pull_request: +# pull_request: workflow_dispatch: concurrency: From cc35c0ba8a5f2e8335da0c72acf35d8c7616b67d Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 5 Jan 2026 16:38:12 +0100 Subject: [PATCH 6/6] upd build --- .github/workflows/workflow-electron.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow-electron.yml b/.github/workflows/workflow-electron.yml index 5ad3928c..fe889c59 100644 --- a/.github/workflows/workflow-electron.yml +++ b/.github/workflows/workflow-electron.yml @@ -44,7 +44,7 @@ jobs: - name: Build electron if: ${{ inputs.dry-run == true }} - run: npm run build --prefix electron -- -c.extraMetadata.version=${{ inputs.version }} + run: npm run build --prefix electron -- "-c.extraMetadata.version=${{ inputs.version }}" - name: Publish electron if: ${{ inputs.dry-run == false }}