diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index c0a4976b1a9..6225c746997 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -57,9 +57,16 @@ jobs: type=pep440,pattern=v{{major}}.{{minor}} type=ref,event=pr + - name: Generate version suffix + id: version_vars + if: github.repository == 'mastodon/mastodon' && github.event_name == 'push' && github.ref_name == 'main' + run: | + echo mastodon_version_suffix=\"+edge-$(git rev-parse --short HEAD)\" >> $GITHUB_OUTPUT + - uses: docker/build-push-action@v4 with: context: . + build-args: MASTODON_VERSION_SUFFIX=${{ steps.version_vars.outputs.mastodon_version_suffix }} platforms: linux/amd64,linux/arm64 provenance: false builder: ${{ steps.buildx.outputs.name }} diff --git a/.github/workflows/build-nightly.yml b/.github/workflows/build-nightly.yml index 501db6e9c67..e765315d05d 100644 --- a/.github/workflows/build-nightly.yml +++ b/.github/workflows/build-nightly.yml @@ -41,9 +41,15 @@ jobs: labels: | org.opencontainers.image.description=Nightly build image used for testing purposes + - name: Generate version suffix + id: version_vars + run: | + echo mastodon_version_suffix=\"+nightly-$(date +'%Y%m%d')\" >> $GITHUB_OUTPUT + - uses: docker/build-push-action@v4 with: context: . + build-args: MASTODON_VERSION_SUFFIX=${{ steps.version_vars.outputs.mastodon_version_suffix }} platforms: linux/amd64,linux/arm64 provenance: false builder: ${{ steps.buildx.outputs.name }} diff --git a/Dockerfile b/Dockerfile index 97893342118..55f7bcf349d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,10 @@ # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim ARG NODE_VERSION="16.20-bullseye-slim" +# Use those args to specify your own version flags & suffixes +ARG MASTODON_VERSION_FLAGS="" +ARG MASTODON_VERSION_SUFFIX="" + FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby FROM node:${NODE_VERSION} as build @@ -84,7 +88,9 @@ COPY --chown=mastodon:mastodon --from=build /opt/mastodon /opt/mastodon ENV RAILS_ENV="production" \ NODE_ENV="production" \ RAILS_SERVE_STATIC_FILES="true" \ - BIND="0.0.0.0" + BIND="0.0.0.0" \ + MASTODON_VERSION_FLAGS="${MASTODON_VERSION_FLAGS}" \ + MASTODON_VERSION_SUFFIX="${MASTODON_VERSION_SUFFIX}" # Set the run user USER mastodon diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 71bcfb4e1aa..455cdc9b860 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -17,11 +17,11 @@ module Mastodon end def flags - '' + ENV.fetch('MASTODON_VERSION_FLAGS', '') end def suffix - '' + ENV.fetch('MASTODON_VERSION_SUFFIX', '') end def to_a