-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## Изменения Добавил раскатку в тест/препрод/прод
- Loading branch information
Showing
9 changed files
with
475 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
name: Тесты и раскатка в тестовую среду | ||
|
||
on: | ||
push: | ||
branches: ['main'] | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: ${{ github.repository }} | ||
|
||
jobs: | ||
test-style: | ||
name: Проверяем стили | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@master | ||
|
||
- uses: pnpm/action-setup@v2 | ||
with: | ||
version: 7.26.3 | ||
|
||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: '18' | ||
cache: 'pnpm' | ||
|
||
- name: Install | ||
run: pnpm install | ||
|
||
- name: Check | ||
run: pnpm lint && pnpm stylelint | ||
|
||
# test: | ||
# name: Выполняем тесты | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Checkout repository | ||
# uses: actions/checkout@master | ||
|
||
# - uses: pnpm/action-setup@v2 | ||
# with: | ||
# version: 7.26.3 | ||
|
||
# - uses: actions/setup-node@v3 | ||
# with: | ||
# node-version: '18' | ||
# cache: 'pnpm' | ||
|
||
# - name: Install | ||
# run: pnpm install | ||
|
||
# - name: Check | ||
# run: pnpm test | ||
|
||
build-test-image: | ||
name: Собираем тестовый Docker | ||
runs-on: ubuntu-latest | ||
needs: | ||
# - test | ||
- test-style | ||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@master | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Extract metadata (tags, labels) for Docker | ||
id: meta | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||
tags: | | ||
type=raw,value=test,enable=true | ||
- name: Build and push Docker image | ||
uses: docker/build-push-action@v4 | ||
with: | ||
file: ./deployment/Dockerfile | ||
context: . | ||
push: true | ||
build-args: | | ||
BUILD_MODE=testing | ||
LAUNCH_MODE=testing | ||
APP_VERSION=${{ github.ref_name }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
|
||
deploy-test: | ||
name: Раскатываем тестовый Docker | ||
runs-on: [self-hosted, Linux] | ||
needs: build-test-image | ||
environment: | ||
name: Testing | ||
url: https://app.test.profcomff.com/ | ||
env: | ||
CONTAINER_NAME: com_profcomff_ui_floormap_test | ||
permissions: | ||
packages: read | ||
steps: | ||
- name: Run docker container | ||
run: | | ||
docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:test | ||
docker stop ${{ env.CONTAINER_NAME }} || true && docker rm ${{ env.CONTAINER_NAME }} || true | ||
docker run \ | ||
--detach \ | ||
--restart on-failure:3 \ | ||
--network=web \ | ||
--name ${{ env.CONTAINER_NAME }} \ | ||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
name: Тесты и раскатка в продакшн | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'v*' | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: ${{ github.repository }} | ||
|
||
jobs: | ||
build-preprod-image: | ||
name: Собираем pre-prod Docker | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@master | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Define preprod metadata | ||
id: meta-preprod | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||
tags: | | ||
type=raw,value=preprod,enable=true | ||
- name: Build and push preprod Docker | ||
uses: docker/build-push-action@v4 | ||
with: | ||
file: ./deployment/Dockerfile | ||
context: . | ||
push: true | ||
build-args: | | ||
BUILD_MODE=production | ||
LAUNCH_MODE=preprod | ||
APP_VERSION=${{ github.ref_name }} | ||
tags: ${{ steps.meta-preprod.outputs.tags }} | ||
labels: ${{ steps.meta-preprod.outputs.labels }} | ||
|
||
build-prod-image: | ||
name: Собираем production Docker | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@master | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Define production metadata | ||
id: meta-prod | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||
tags: | | ||
type=ref,event=tag,enable=true | ||
type=raw,value=prod,enable=true | ||
type=raw,value=latest,enable=true | ||
- name: Build and push production Docker | ||
uses: docker/build-push-action@v4 | ||
with: | ||
file: ./deployment/Dockerfile | ||
context: . | ||
push: true | ||
build-args: | | ||
BUILD_MODE=production | ||
LAUNCH_MODE=production | ||
APP_VERSION=${{ github.ref_name }} | ||
tags: ${{ steps.meta-prod.outputs.tags }} | ||
labels: ${{ steps.meta-prod.outputs.labels }} | ||
|
||
deploy-preprod: | ||
name: Раскатываем pre-prod среду | ||
runs-on: [self-hosted, Linux] | ||
needs: build-preprod-image | ||
environment: | ||
name: Preprod | ||
url: https://app.preprod.profcomff.com/ | ||
env: | ||
CONTAINER_NAME: com_profcomff_ui_floormap_preprod | ||
permissions: | ||
packages: read | ||
steps: | ||
- name: Run docker container | ||
run: | | ||
docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:preprod | ||
docker stop ${{ env.CONTAINER_NAME }} || true && docker rm ${{ env.CONTAINER_NAME }} || true | ||
docker run \ | ||
--detach \ | ||
--restart on-failure:3 \ | ||
--network=web \ | ||
--name ${{ env.CONTAINER_NAME }} \ | ||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:preprod | ||
undeploy-preprod: | ||
name: Останавливаем pre-prod среду | ||
runs-on: [self-hosted, Linux] | ||
needs: deploy-preprod | ||
environment: | ||
name: Preprod | ||
env: | ||
CONTAINER_NAME: com_profcomff_ui_floormap_preprod | ||
permissions: | ||
packages: read | ||
steps: | ||
- name: Stop docker container | ||
run: | | ||
docker stop ${{ env.CONTAINER_NAME }} || true && docker rm ${{ env.CONTAINER_NAME }} || true | ||
deploy-production: | ||
name: Раскатываем production среду | ||
runs-on: [self-hosted, Linux] | ||
needs: [deploy-preprod, build-prod-image] | ||
environment: | ||
name: Production | ||
url: https://app.profcomff.com/ | ||
env: | ||
CONTAINER_NAME: com_profcomff_ui_floormap | ||
permissions: | ||
packages: read | ||
steps: | ||
- name: Run docker container | ||
run: | | ||
docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:prod | ||
docker stop ${{ env.CONTAINER_NAME }} || true && docker rm ${{ env.CONTAINER_NAME }} || true | ||
docker run \ | ||
--detach \ | ||
--restart always \ | ||
--network=web \ | ||
--name ${{ env.CONTAINER_NAME }} \ | ||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:prod |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Тесты и раскатка на Pull Request (остановка) | ||
|
||
on: | ||
pull_request: | ||
types: [closed] | ||
|
||
jobs: | ||
stop-deployment-dev: | ||
name: Останавливаем dev среду | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: development-pr-${{ github.event.pull_request.number }} | ||
steps: | ||
- name: Stop deployment | ||
run: | | ||
curl -X 'POST' \ | ||
'https://ci.dev.profcomff.com/pr_stop' \ | ||
-H 'accept: application/json' \ | ||
-H 'Content-Type: application/json' \ | ||
-H 'Authorization: ${{ secrets.CI_DYAKOVSPACE_MSK_TOKEN }}' \ | ||
-d '{ | ||
"repo_url": "${{ github.repository }}", | ||
"git_ref": "${{ github.ref }}" | ||
}' |
Oops, something went wrong.