diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index df05d39..8a38d6e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,55 +9,8 @@ jobs: - /var/docker-web:/var/docker-web steps: - uses: actions/checkout@v4 - - name: Edit .env - run: | - set -a && source .env && set +a - - changeEnvVar() { - local var_name="$1" - local new_value="$2" - local env_file=".env" - - if grep -q "^${var_name}=" "$env_file"; then - sed -i "s|${var_name}=.*|${var_name}=${new_value}|" "$env_file" - else - echo "${var_name}=${new_value}" >> "$env_file" - fi - } - - # Variables GitHub - APP_NAME="${GITHUB_REPOSITORY##*/}" - BRANCH_NAME=$GITHUB_REF_NAME - - # Configuration pour les branches non-principales - if [ "$BRANCH_NAME" != "main" ] && [ "$BRANCH_NAME" != "master" ]; then - DOMAIN="$BRANCH_NAME.$DOMAIN" - APP_NAME="$BRANCH_NAME_$APP_NAME" - PORT=$(bash /var/docker-web/src/cli.sh ALLOCATE_PORT) - sed -i "s|${GITHUB_REPOSITORY##*/}|$APP_NAME|g" docker-compose.yml - fi - - changeEnvVar "DOMAIN" $DOMAIN - changeEnvVar "APP_NAME" $APP_NAME - changeEnvVar "PORT" $PORT - changeEnvVar "APP_DIR" "/var/docker-web/apps/$APP_NAME" - - set -a && source .env && set +a - cat .env - echo $APP_NAME - - - name: Upload workspace files - uses: actions/upload-artifact@v3 - with: - name: workspace-files - path: . - - - uses: actions/checkout@v4 - - name: Restore workspace files - uses: actions/download-artifact@v3 - with: - name: workspace-files - path: . + - name: Setup environment + run: ./.github/workflows/setup-env.sh - name: Build app run: | set -a && source .env && set +a @@ -79,11 +32,8 @@ jobs: - /var/docker-web:/var/docker-web steps: - uses: actions/checkout@v4 - - name: Restore workspace files - uses: actions/download-artifact@v3 - with: - name: workspace-files - path: . + - name: Setup environment + run: ./.github/workflows/setup-env.sh - name: Deploy run: | set -a && source .env && set +a diff --git a/.github/workflows/setup-env.sh b/.github/workflows/setup-env.sh new file mode 100755 index 0000000..9fe2136 --- /dev/null +++ b/.github/workflows/setup-env.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -a && source .env && set +a + +changeEnvVar() { + local var_name="$1" + local new_value="$2" + local env_file=".env" + + if grep -q "^${var_name}=" "$env_file"; then + sed -i "s|${var_name}=.*|${var_name}=${new_value}|" "$env_file" + else + echo "${var_name}=${new_value}" >> "$env_file" + fi +} + +# Variables GitHub +APP_NAME="${GITHUB_REPOSITORY##*/}" +BRANCH_NAME=$GITHUB_REF_NAME + +# Configuration pour les branches non-principales +if [ "$BRANCH_NAME" != "main" ] && [ "$BRANCH_NAME" != "master" ]; then + DOMAIN="$BRANCH_NAME.$DOMAIN" + APP_NAME="$BRANCH_NAME_$APP_NAME" + PORT=$(bash /var/docker-web/src/cli.sh ALLOCATE_PORT) + sed -i "s|${GITHUB_REPOSITORY##*/}|$APP_NAME|g" docker-compose.yml +fi + +changeEnvVar "DOMAIN" $DOMAIN +changeEnvVar "APP_NAME" $APP_NAME +changeEnvVar "PORT" $PORT +changeEnvVar "APP_DIR" "/var/docker-web/apps/$APP_NAME" + +set -a && source .env && set +a +cat .env +echo $APP_NAME