Commit f8a304ba authored by boojack's avatar boojack

fix(release): inject build version into artifacts

parent cfe2cf4c
...@@ -95,6 +95,9 @@ jobs: ...@@ -95,6 +95,9 @@ jobs:
context: . context: .
file: ./scripts/Dockerfile file: ./scripts/Dockerfile
platforms: ${{ matrix.platform }} platforms: ${{ matrix.platform }}
build-args: |
VERSION=canary
COMMIT=${{ github.sha }}
cache-from: type=gha,scope=build-${{ matrix.platform }} cache-from: type=gha,scope=build-${{ matrix.platform }}
cache-to: type=gha,mode=max,scope=build-${{ matrix.platform }} cache-to: type=gha,mode=max,scope=build-${{ matrix.platform }}
outputs: type=image,name=neosmemo/memos,push-by-digest=true,name-canonical=true,push=true outputs: type=image,name=neosmemo/memos,push-by-digest=true,name-canonical=true,push=true
......
...@@ -161,7 +161,7 @@ jobs: ...@@ -161,7 +161,7 @@ jobs:
go build \ go build \
-trimpath \ -trimpath \
-ldflags="-s -w -X github.com/usememos/memos/internal/version.Version=${{ needs.prepare.outputs.version }} -extldflags '-static'" \ -ldflags="-s -w -X github.com/usememos/memos/internal/version.Version=${{ needs.prepare.outputs.version }} -X github.com/usememos/memos/internal/version.Commit=${{ github.sha }} -extldflags '-static'" \
-tags netgo,osusergo \ -tags netgo,osusergo \
-o "build/${output_name}" \ -o "build/${output_name}" \
./cmd/memos ./cmd/memos
......
{ {
".": "0.27.1" ".": "0.27.0"
} }
# Changelog # Changelog
## [0.27.1](https://github.com/usememos/memos/compare/v0.27.0...v0.27.1) (2026-04-19)
### Bug Fixes
* mixed-case user resource names ([#5853](https://github.com/usememos/memos/issues/5853)) ([01be01f](https://github.com/usememos/memos/commit/01be01f4b7676af41bdd1758b1e9b096aa922546))
## [0.27.0](https://github.com/usememos/memos/compare/v0.26.2...v0.27.0) (2026-04-18) ## [0.27.0](https://github.com/usememos/memos/compare/v0.26.2...v0.27.0) (2026-04-18)
......
...@@ -7,9 +7,11 @@ import ( ...@@ -7,9 +7,11 @@ import (
"golang.org/x/mod/semver" "golang.org/x/mod/semver"
) )
// Version is the service current released version. // Version is set by release builds and defaults to a development build marker.
// Semantic versioning: https://semver.org/ var Version = "dev"
var Version = "0.27.0"
// Commit is set by CI builds and defaults to an unknown revision marker.
var Commit = "unknown"
func GetCurrentVersion() string { func GetCurrentVersion() string {
return Version return Version
......
...@@ -14,13 +14,13 @@ COPY . . ...@@ -14,13 +14,13 @@ COPY . .
# Please build frontend first, so that the static files are available. # Please build frontend first, so that the static files are available.
# Refer to `pnpm release` in package.json for the build command. # Refer to `pnpm release` in package.json for the build command.
ARG TARGETOS TARGETARCH VERSION COMMIT ARG TARGETOS TARGETARCH VERSION=dev COMMIT=unknown
RUN --mount=type=cache,target=/go/pkg/mod \ RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \ CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \
go build \ go build \
-trimpath \ -trimpath \
-ldflags="-s -w -extldflags '-static'" \ -ldflags="-s -w -X github.com/usememos/memos/internal/version.Version=${VERSION} -X github.com/usememos/memos/internal/version.Commit=${COMMIT} -extldflags '-static'" \
-tags netgo,osusergo \ -tags netgo,osusergo \
-o memos \ -o memos \
./cmd/memos ./cmd/memos
......
...@@ -295,19 +295,27 @@ func (s *Store) seed(ctx context.Context) error { ...@@ -295,19 +295,27 @@ func (s *Store) seed(ctx context.Context) error {
return tx.Commit() return tx.Commit()
} }
// GetCurrentSchemaVersion returns the latest schema version available for the configured database driver.
func (s *Store) GetCurrentSchemaVersion() (string, error) { func (s *Store) GetCurrentSchemaVersion() (string, error) {
currentVersion := version.GetCurrentVersion() filePaths, err := fs.Glob(migrationFS, fmt.Sprintf("%s*/*.sql", s.getMigrationBasePath()))
minorVersion := version.GetMinorVersion(currentVersion)
filePaths, err := fs.Glob(migrationFS, fmt.Sprintf("%s%s/*.sql", s.getMigrationBasePath(), minorVersion))
if err != nil { if err != nil {
return "", errors.Wrap(err, "failed to read migration files") return "", errors.Wrap(err, "failed to read migration files")
} }
slices.Sort(filePaths)
if len(filePaths) == 0 { if len(filePaths) == 0 {
return fmt.Sprintf("%s.0", minorVersion), nil return defaultSchemaVersion, nil
}
currentSchemaVersion := defaultSchemaVersion
for _, filePath := range filePaths {
fileSchemaVersion, err := s.getSchemaVersionOfMigrateScript(filePath)
if err != nil {
return "", errors.Wrap(err, "failed to get schema version of migrate script")
}
if version.IsVersionGreaterThan(fileSchemaVersion, currentSchemaVersion) {
currentSchemaVersion = fileSchemaVersion
}
} }
return s.getSchemaVersionOfMigrateScript(filePaths[len(filePaths)-1]) return currentSchemaVersion, nil
} }
// getSchemaVersionOfMigrateScript extracts the schema version from the migration script file path. // getSchemaVersionOfMigrateScript extracts the schema version from the migration script file path.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment