~cytrogen/masto-fe

830e6cefaec1777e87fa33b19cd100f04dd63323 — Renaud Chaput 2 years ago 569b392
Add version suffixes to nightly & edge image builds (#24823)

M .github/workflows/build-image.yml => .github/workflows/build-image.yml +7 -0
@@ 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 }}

M .github/workflows/build-nightly.yml => .github/workflows/build-nightly.yml +6 -0
@@ 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 }}

M Dockerfile => Dockerfile +7 -1
@@ 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

M lib/mastodon/version.rb => lib/mastodon/version.rb +2 -2
@@ 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