Skip to content

Commit

Permalink
[PAYSHIP-3116] Deployment workflow PS 1.6.1.x (#1288)
Browse files Browse the repository at this point in the history
* Deployment workflow PS 1.6

* Deployment workflow PS 1.6

* Push zip files at GCP bucket storage root
  • Loading branch information
seiwan authored Nov 27, 2024
1 parent b150246 commit be300a8
Show file tree
Hide file tree
Showing 9 changed files with 440 additions and 101 deletions.
86 changes: 86 additions & 0 deletions .github/actions/auth-gcp/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: 'Auth GCP'
description: 'Auth gcp, can login to docker artifact registry or install the sdk'
inputs:
auth-mode:
description: 'Authentication mode (workload-federation or json-file)'
required: true
type: choice
options:
- workload-federation
- json-file
default: 'workload-federation'
registry-login:
required: false
type: bool
default: false
credentials-json:
required: false
type: string
setup-gcloud:
required: false
type: bool
default: false
service-account:
required: false
description: Service account email
type: string
provider:
required: false
description: gcp workload identity provider
type: string
gcp-registry-region:
required: false
description: docker registry gcp
default: "europe-west1-docker.pkg.dev"
type: string
sdk-version:
required: true
description: which version of google dsl you want to suer
default: '>=457.0.0'
type: string
gke-cluster-name:
required: false
description: 'If you put the cluster name in this variable it will activate auth to make kubectl'
default: ''
type: string
cluster-region:
required: false
description: 'Cluster region'
type: choice
options:
- europe-west1
default: 'europe-west1'

runs:
using: 'composite'
steps:
- name: Authenticate to Google Cloud with Workload Federation 🔐
if: ${{ inputs.auth-mode == 'workload-federation' }}
uses: google-github-actions/auth@v2
with:
workload_identity_provider: ${{ inputs.provider }}
service_account: ${{ inputs.service-account }}

- name: Authenticate to Google Cloud with a JSON file 🔐 (THIS IS DEPRECATED ❌)
if: ${{ inputs.auth-mode == 'json-file' }}
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ inputs.credentials-json }}

- name: Setting up gcloud SDK 🛠
if: ${{ inputs.setup-gcloud == 'true' }}
uses: google-github-actions/setup-gcloud@v2
with:
version: ${{ inputs.sdk-version }}

- name: Login to Docker artifact registry 🐳
if: ${{ inputs.registry-login == 'true' }}
shell: bash
run: gcloud auth configure-docker ${{ inputs.gcp-registry-region }}

- name: Add cluster authentification 🧊
if: ${{ inputs.gke-cluster-name != '' }}
uses: 'google-github-actions/get-gke-credentials@v2'
with:
cluster_name: '${{ inputs.gke-cluster-name }}'
location: '${{ inputs.cluster-region }}'
96 changes: 0 additions & 96 deletions .github/workflows/build-release.yml

This file was deleted.

99 changes: 99 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: PrestaShop 1.6 - Deployment

on:
pull_request:
types: [opened, reopened, synchronize, edited, labeled]
push:
tags:
- v6.*
branches:
- prestashop/1.6.x

jobs:
zip-name-matrix:
name: Generate zip file name
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
env:
- integration
- preproduction
outputs:
integration: ${{ steps.zip-name.outputs.integration }}
preproduction: ${{ steps.zip-name.outputs.preproduction }}
production: ${{ github.event.repository.name }}

steps:
- name: Generate zip file name
id: zip-name
run: |
date=$(date -d '+2 hours' +'%Y-%m-%d_%H-%M-%S')
echo "$ENV=$REPOSITORY-$PS_VERSION-$ENV-$PR_NUMBER-$date" >> "$GITHUB_OUTPUT"
env:
ENV: ${{ matrix.env }}
REPOSITORY: ${{ github.event.repository.name }}
PS_VERSION: ps6
PR_NUMBER: pr${{ github.event.number }}

push-to-repository-matrix:
name: ${{ matrix.env.upper }} - Push to GitHub repository
needs: [zip-name-matrix]
strategy:
fail-fast: false
matrix:
env:
- upper: INTEGRATION
lower: integration
triggered: ${{ contains(github.event.pull_request.labels.*.name, 'integration deployment') }}
- upper: PREPRODUCTION
lower: preproduction
triggered: ${{ contains(github.event.pull_request.labels.*.name, 'preproduction deployment') }}
- upper: PRODUCTION
lower: production
triggered: ${{ github.event_name == 'push' }}
uses: ./.github/workflows/push-to-repository.yml
with:
env-upper: ${{ matrix.env.upper }}
env-lower: ${{ matrix.env.lower }}
triggered: ${{ matrix.env.triggered }}
zip-name: ${{ needs.zip-name-matrix.outputs[matrix.env.lower] }}
repository-name: ${{ github.event.repository.name }}
secrets: inherit

push-to-bucket-matrix:
name: ${{ matrix.env.upper }} - Push to GCP bucket storage
needs: [zip-name-matrix, push-to-repository-matrix]
strategy:
fail-fast: false
matrix:
env:
- lower: integration
upper: INTEGRATION
triggered: ${{ contains(github.event.pull_request.labels.*.name, 'integration deployment') }}
- lower: preproduction
upper: PREPRODUCTION
triggered: ${{ contains(github.event.pull_request.labels.*.name, 'preproduction deployment') }}
- upper: PRODUCTION
lower: production
triggered: ${{ github.event_name == 'push' }}
uses: ./.github/workflows/push-to-bucket.yml
with:
env-upper: ${{ matrix.env.upper }}
env-lower: ${{ matrix.env.lower }}
triggered: ${{ matrix.env.triggered }}
zip-name: ${{ needs.zip-name-matrix.outputs[matrix.env.lower] }}
repository-name: ${{ github.event.repository.name }}
prestashop-version: ps6
pr-number: pr${{ github.event.number }}
secrets: inherit

update-release-draft:
name: PRODUCTION - Update release draft
needs: [push-to-repository-matrix]
uses: ./.github/workflows/update-release-draft.yml
with:
env-lower: production
triggered: ${{ github.event_name == 'push' }}
repository-name: ${{ github.event.repository.name }}
secrets: inherit
1 change: 1 addition & 0 deletions .github/workflows/js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ jobs:
js-linter:
name: JS linter
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'ready to review') }}
steps:
- name: Checkout
uses: actions/[email protected]
Expand Down
15 changes: 10 additions & 5 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,24 @@ name: PHP tests
on:
push:
branches:
- 'master'
- 'prestashop/1.6.1.x'
- "master"
- "prestashop/1.6.1.x"
pull_request:
types: [opened, reopened, synchronize, edited]

jobs:
header-stamp:
name: Check license headers
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'ready to review') }}
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP 7.4
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
php-version: "7.4"

- name: Cache vendor folder
uses: actions/cache@v1
Expand All @@ -39,6 +40,7 @@ jobs:
php-linter:
name: PHP Syntax check 5.6|7.1
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'ready to review') }}
steps:
- name: Checkout
uses: actions/[email protected]
Expand All @@ -49,6 +51,7 @@ jobs:
php-cs-fixer:
name: PHP-CS-Fixer
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'ready to review') }}
steps:
- name: Checkout
uses: actions/[email protected]
Expand All @@ -57,9 +60,10 @@ jobs:
phpstan:
name: PHPStan
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'ready to review') }}
strategy:
matrix:
presta-versions: ['1.6.1.0', '1.6.1.21']
presta-versions: ["1.6.1.0", "1.6.1.21"]
steps:
- name: Checkout
uses: actions/[email protected]
Expand All @@ -81,11 +85,12 @@ jobs:
- name: Pull PrestaShop files (Tag ${{ matrix.presta-versions }})
run: docker run -tid --rm -v ps-volume:/var/www/html --name temp-ps prestashop/prestashop:${{ matrix.presta-versions }}

- name : Run PHPStan
- name: Run PHPStan
run: docker run --rm --volumes-from temp-ps -v $PWD:/web/module -e _PS_ROOT_DIR_=/var/www/html --workdir=/web/module phpstan/phpstan:0.12 analyse --configuration=/web/module/tests/phpstan/phpstan-PS-1.6.neon --error-format github
phpunit:
name: PHPUnit
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'ready to review') }}
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down
Loading

0 comments on commit be300a8

Please sign in to comment.