fix(release): inject build version into artifacts
This commit is contained in:
parent
cfe2cf4cf5
commit
f8a304bae3
7 changed files with 27 additions and 21 deletions
3
.github/workflows/build-canary-image.yml
vendored
3
.github/workflows/build-canary-image.yml
vendored
|
|
@ -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
|
||||||
|
|
|
||||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
".": "0.27.1"
|
".": "0.27.0"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,5 @@
|
||||||
# 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 (
|
||||||
"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 . .
|
||||||
|
|
||||||
# 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 {
|
||||||
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
|
||||||
}
|
}
|
||||||
return s.getSchemaVersionOfMigrateScript(filePaths[len(filePaths)-1])
|
|
||||||
|
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 currentSchemaVersion, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// getSchemaVersionOfMigrateScript extracts the schema version from the migration script file path.
|
// getSchemaVersionOfMigrateScript extracts the schema version from the migration script file path.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue