Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

Bump symfony/http-foundation from 7.2.9 to 7.3.7 #306

Bump symfony/http-foundation from 7.2.9 to 7.3.7

Bump symfony/http-foundation from 7.2.9 to 7.3.7 #306

name: Test and Build
on:
push: ~
pull_request:
branches:
- main
env:
PHP_VERSION: '8.4'
jobs:
test:
runs-on: ubuntu-24.04
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: shinage_test
ports:
- 13306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
tools: symfony
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Validate composer files
run: composer validate --no-check-all --strict
- name: Install php dependencies
run: composer install --prefer-dist --no-progress --no-scripts
- name: Install yarn dependencies
run: |
corepack enable
yarn install --immutable
- name: Build assets
run: ./node_modules/.bin/gulp
env:
NODE_ENV: production
- name: Setup test environment
shell: bash
run: |
cp .env.github-actions .env &&
cp .env.github-actions .env.test &&
php bin/console assets:install --env=test &&
php bin/console doctrine:migrations:migrate -n --env=test &&
php bin/console doctrine:fixtures:load -n --env=test
- name: Start test webserver
run: symfony local:server:start --no-tls --daemon --port=8000
- name: Check PHP codestyle
run: ./vendor/bin/ecs check --no-progress-bar --ansi --no-interaction
- name: Check JS codestyle
run: ./node_modules/.bin/gulp eslint
- name: Lint YAML files
run: ./bin/console lint:yaml config/ src/ translations/
- name: Lint TWIG files
run: ./bin/console lint:twig config/ src/ templates/
- name: Check composer dependencies
run: ./vendor/bin/composer-dependency-analyser
- name: Run phpstan
run: ./vendor/bin/phpstan analyse --no-progress --no-interaction --memory-limit=-1
- name: Run phpspec
run: ./vendor/bin/phpspec run --format=pretty --no-code-generation
- name: Run behat
run: ./vendor/bin/behat --format=progress --strict -n --tags="~@todo"
env:
APP_ENV: test
package:
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/v')
needs: test
runs-on: ubuntu-24.04
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Print versions
run: |
corepack enable
php --version
node --version
corepack -v
yarn --version
- name: Install php dependencies
run: |
composer install --prefer-dist --no-progress --no-scripts --no-dev
composer dump-autoload --classmap-authoritative
- name: Install yarn dependencies
run: |
corepack enable
yarn install --immutable
- name: Build assets
run: ./node_modules/.bin/gulp
env:
NODE_ENV: production
- name: Write revision file
run: echo "${GITHUB_REF#refs/*/}" > REVISION
- name: Prepare and cleanup
run: |
mkdir ./build
rm -f .gitignore .web-server-pid .env .env.* .eslintrc .nvmrc
rm -f bin/devEnv.sh bin/runInDev.sh
rm -f ecs.php package* behat.yml codeception.yml install-git-hooks.php phpspec.yml gulpfile.js
rm -rf .github/ node_modules/ var/cache/dev/ var/cache/test/ var/session/dev/ var/session/test/ .git/ etc/ features/ tests/ git-hooks/ spec/ data/pool/*
- name: Package release file
run: tar --exclude="./build" --exclude="./var/log/*.log" --transform 's,^\./,,' -czf ./build/shinage-server-release.tar.gz .
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v2
with:
name: Release ${{ github.ref }}
body: Release ${{ github.ref }}
draft: false
prerelease: false
files: build/shinage-server-release.tar.gz
docker-prepare:
needs: test
runs-on: ubuntu-24.04
outputs:
date: ${{ steps.additional_variables.outputs.date }}
ref_slug: ${{ steps.additional_variables.outputs.ref_slug }}
image_base_url: ${{ steps.additional_variables.outputs.image_base_url }}
steps:
- name: Inject enhanced GitHub environment variables
uses: rlespinasse/github-slug-action@v5
with:
slug-maxlength: 80
- name: Prepare additional variables
id: additional_variables
run: |
echo "date=$(date -u -Iseconds)" >> $GITHUB_OUTPUT
echo "ref_slug=$GITHUB_REF_NAME_SLUG" >> $GITHUB_OUTPUT
echo "image_base_url=ghcr.io/${{ github.repository }}" >> $GITHUB_OUTPUT
docker-amd64:
needs: docker-prepare
runs-on: ubuntu-24.04
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
tools: symfony
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Print versions
run: |
corepack enable
node --version
corepack -v
yarn --version
- name: Install php dependencies
run: composer install --prefer-dist --no-progress --no-scripts
- name: Install yarn dependencies
run: |
corepack enable
yarn install --immutable
- name: Build assets
run: ./node_modules/.bin/gulp
env:
NODE_ENV: production
- name: Write revision file
run: echo "${{ github.sha }}" > REVISION
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image (amd64)
run: |
docker buildx build \
--build-arg "APP_BUILDDATE=${{ needs.docker-prepare.outputs.date }}" \
--build-arg "APP_REVISION=${{ github.sha }}" \
--build-arg "PHP_VERSION=${{ env.PHP_VERSION }}" \
--target prod \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-amd64" \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}-amd64" \
-f Dockerfile .
docker buildx build \
--build-arg "${{ needs.docker-prepare.outputs.date }}" \
--build-arg "${{ github.sha }}" \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-amd64" \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}-amd64" \
-f Dockerfile.nginx .
docker images
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-amd64"
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}-amd64"
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-amd64"
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}-amd64"
docker-arm64:
needs: docker-prepare
runs-on: ubuntu-24.04-arm
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
tools: symfony
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Print versions
run: |
corepack enable
node --version
corepack -v
yarn --version
- name: Install php dependencies
run: composer install --prefer-dist --no-progress --no-scripts
- name: Install yarn dependencies
run: |
corepack enable
yarn install --immutable
- name: Build assets
run: ./node_modules/.bin/gulp
env:
NODE_ENV: production
- name: Write revision file
run: echo "${{ github.sha }}" > REVISION
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image (amd64)
run: |
docker buildx build \
--build-arg "APP_BUILDDATE=${{ needs.docker-prepare.outputs.date }}" \
--build-arg "APP_REVISION=${{ github.sha }}" \
--build-arg "PHP_VERSION=${{ env.PHP_VERSION }}" \
--target prod \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-arm64" \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}-arm64" \
-f Dockerfile .
docker buildx build \
--build-arg "${{ needs.docker-prepare.outputs.date }}" \
--build-arg "${{ github.sha }}" \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-arm64" \
-t "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}-arm64" \
-f Dockerfile.nginx .
docker images
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-arm64"
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}-arm64"
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-arm64"
docker push -q "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}-arm64"
docker-manifest:
needs:
- docker-prepare
- docker-amd64
- docker-arm64
runs-on: ubuntu-24.04
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build docker manifest
run: |
docker manifest create \
"${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-amd64" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-arm64"
docker manifest create \
"${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-amd64" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-arm64"
docker manifest create \
"${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}-amd64" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}-arm64"
docker manifest create \
"${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}-amd64" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}-arm64"
docker manifest push "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}"
docker manifest push "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}"
docker manifest push "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ needs.docker-prepare.outputs.ref_slug }}"
docker manifest push "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ needs.docker-prepare.outputs.ref_slug }}"
docker-manifest-latest:
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/v')
needs:
- docker-prepare
- docker-amd64
- docker-arm64
runs-on: ubuntu-24.04
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build docker manifest
run: |
docker manifest create \
"${{ needs.docker-prepare.outputs.image_base_url }}-app:latest" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-amd64" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}-arm64"
docker manifest create \
"${{ needs.docker-prepare.outputs.image_base_url }}-web:latest" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-amd64" \
--amend "${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}-arm64"
docker manifest push "${{ needs.docker-prepare.outputs.image_base_url }}-app:latest"
docker manifest push "${{ needs.docker-prepare.outputs.image_base_url }}-web:latest"
trigger-managed-deployment:
needs:
- docker-prepare
- docker-manifest
runs-on: ubuntu-24.04
steps:
- name: Trigger managed deployment pipeline
run: |
curl -X POST \
--fail \
--silent \
-F "token=${{ secrets.MANAGED_DEPLOYMENT_PIPELINE_TRIGGER_TOKEN }}" \
-F "ref=main" \
-F "variables[SOURCE_REF_NAME]=${{ needs.docker-prepare.outputs.ref_slug }}" \
-F "variables[IMAGE_URL_APP]=${{ needs.docker-prepare.outputs.image_base_url }}-app:${{ github.sha }}" \
-F "variables[IMAGE_URL_WEB]=${{ needs.docker-prepare.outputs.image_base_url }}-web:${{ github.sha }}" \
"${{ secrets.MANAGED_DEPLOYMENT_PIPELINE_TRIGGER_URL }}"