From a55afbd3edfde3aa41c98f042fcce44a1b58d94c Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 25 Sep 2024 19:57:14 +0800 Subject: [PATCH] chore: tweak build actions --- .../build-and-push-release-image.yml | 11 +-- .../workflows/build-and-push-stable-image.yml | 72 +++++++++++++++++++ server/version/version.go | 4 +- 3 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/build-and-push-stable-image.yml diff --git a/.github/workflows/build-and-push-release-image.yml b/.github/workflows/build-and-push-release-image.yml index f9d6760e..fb4c554b 100644 --- a/.github/workflows/build-and-push-release-image.yml +++ b/.github/workflows/build-and-push-release-image.yml @@ -2,12 +2,9 @@ name: build-and-push-release-image on: push: - tags: - # Run on pushing tags like 'v1.0.0' - - "v*.*.*" branches: - # Run on pushing branches like 'v1.0.0' - - "v*.*.*" + # Run on pushing branches like 'v1.0.0', 'v0.22.2rc' + - "v*" jobs: build-and-push-release-image: @@ -55,9 +52,7 @@ jobs: neosmemo/memos ghcr.io/usememos/memos tags: | - type=semver,pattern={{version}},value=${{ env.VERSION }} - type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} - ${{ startsWith(github.ref, 'refs/tags/') && 'type=raw,value=stable' }} + type=semver,value=${{ env.VERSION }} flavor: | latest=true labels: | diff --git a/.github/workflows/build-and-push-stable-image.yml b/.github/workflows/build-and-push-stable-image.yml new file mode 100644 index 00000000..0248f2e1 --- /dev/null +++ b/.github/workflows/build-and-push-stable-image.yml @@ -0,0 +1,72 @@ +name: build-and-push-stable-image + +on: + push: + tags: + # Run on pushing tags like 'v1.0.0' + - "v*.*.*" + +jobs: + build-and-push-stable-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Extract build args + # Extract version from tag name + # Example: tag name `v1.0.0` sets up env.VERSION=1.0.0 + run: | + echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: stevenlgtm + password: ${{ secrets.DOCKER_HUB_TOKEN }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + with: + install: true + version: v0.9.1 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: | + neosmemo/memos + ghcr.io/usememos/memos + tags: | + type=semver,pattern={{version}},value=${{ env.VERSION }} + type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} + type=raw,value=stable + flavor: | + latest=true + labels: | + org.opencontainers.image.version=${{ env.VERSION }} + + - name: Build and Push + id: docker_build + uses: docker/build-push-action@v6 + with: + context: ./ + file: ./Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/server/version/version.go b/server/version/version.go index 9cab06c9..eccaa395 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -9,10 +9,10 @@ import ( // Version is the service current released version. // Semantic versioning: https://semver.org/ -var Version = "0.22.5" +var Version = "0.22.6" // DevVersion is the service current development version. -var DevVersion = "0.22.5" +var DevVersion = "0.22.6" func GetCurrentVersion(mode string) string { if mode == "dev" || mode == "demo" {