diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml new file mode 100644 index 00000000..7379e3b3 --- /dev/null +++ b/.github/workflows/cicd.yml @@ -0,0 +1,35 @@ +name: Build and Push to Registry + +on: + push: + branches: [ cicd ] + +env: + REGISTRY: git.4nkweb.com + IMAGE_NAME: 4nk/lecoffre-front + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ secrets.USER }} + password: ${{ secrets.TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }} \ No newline at end of file diff --git a/.github/workflows/ppd.yml b/.github/workflows/ppd.yml deleted file mode 100644 index 2929890d..00000000 --- a/.github/workflows/ppd.yml +++ /dev/null @@ -1,78 +0,0 @@ -name: Preprod - Build & Deploy to Scaleway - -on: - push: - branches: [preprod] - -env: - PROJECT_ID_LECOFFRE: 72d08499-37c2-412b-877e-f8af0471654a - NAMESPACE_ID_LECOFFRE: e975f056-967e-43fe-b237-84bfa8032e64 - CONTAINER_REGISTRY_ENDPOINT_LECOFFRE: rg.fr-par.scw.cloud/funcscwlecoffreppdmp73pool - - IMAGE_NAME: front - CONTAINER_NAME: front - -jobs: - build-and-push-image-lecoffre: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup SSH - run: | - mkdir -p ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - - name: Copy SSH - run: cp ~/.ssh/id_rsa id_rsa - - name: Login to Scaleway Container Registry - uses: docker/login-action@v3 - with: - username: nologin - password: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - registry: ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }} - - name: Get Git Commit SHA - id: vars - run: echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - name: Build the Docker Image - run: docker build . -t ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }}/${{ env.IMAGE_NAME }} - - name: Push the Docker Image to Scaleway Container Registry - run: docker push ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }}/${{ env.IMAGE_NAME }} - deploy-to-scaleway-lecoffre: - needs: build-and-push-image-lecoffre - runs-on: ubuntu-latest - environment: preprod - steps: - - name: Install CLI - uses: scaleway/action-scw@v0 - - name: Get container ID - run: | - echo "CONTAINER_ID=$(scw container container list namespace-id=${{env.NAMESPACE_ID_LECOFFRE}} -o json | jq -r '.[] | select(.name == "${{ env.CONTAINER_NAME }}") | .id')" >> $GITHUB_ENV - env: - SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY_LECOFFRE }} - SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - SCW_DEFAULT_PROJECT_ID: ${{ env.PROJECT_ID_LECOFFRE }} - SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID_LECOFFRE }} - - name: Deploy the container based on the new image - run: | - env_string="" - while IFS= read -r line; do - if [[ "$line" == *"="* ]]; then - key=$(echo "$line" | cut -d '=' -f 1) - value=$(echo "$line" | cut -d '=' -f 2-) - if [[ -n "$key" ]]; then - env_string+="environment-variables.$key=$value " - fi - fi - done <<< "$ENV_VARS" - env_string=$(echo $env_string | sed 's/ $//') - scw container container update ${{ env.CONTAINER_ID }} $env_string - env: - ENV_VARS: ${{ secrets.ENV }} - SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY_LECOFFRE }} - SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - SCW_DEFAULT_PROJECT_ID: ${{ env.PROJECT_ID_LECOFFRE }} - SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID_LECOFFRE }} - \ No newline at end of file diff --git a/.github/workflows/prd.yml b/.github/workflows/prd.yml deleted file mode 100644 index e9e670c8..00000000 --- a/.github/workflows/prd.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Prod - Build & Deploy to Scaleway - -on: - push: - branches: [main] - -env: - - PROJECT_ID_LECOFFRE: 72d08499-37c2-412b-877e-f8af0471654a - NAMESPACE_ID_LECOFFRE: 8fbbce9d-31d1-4368-94c4-445e79f10834 - CONTAINER_REGISTRY_ENDPOINT_LECOFFRE: rg.fr-par.scw.cloud/funcscwlecoffreprdjulp9mam - - IMAGE_NAME: front - CONTAINER_NAME: front - -jobs: - build-and-push-image-lecoffre: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup SSH - run: | - mkdir -p ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - - name: Copy SSH - run: cp ~/.ssh/id_rsa id_rsa - - name: Login to Scaleway Container Registry - uses: docker/login-action@v3 - with: - username: nologin - password: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - registry: ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }} - - name: Get Git Commit SHA - id: vars - run: echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - name: Build the Docker Image - run: docker build . -t ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }}/${{ env.IMAGE_NAME }} - - name: Push the Docker Image to Scaleway Container Registry - run: docker push ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }}/${{ env.IMAGE_NAME }} - deploy-to-scaleway-lecoffre: - needs: build-and-push-image-lecoffre - runs-on: ubuntu-latest - environment: prod - steps: - - name: Install CLI - uses: scaleway/action-scw@v0 - - name: Get container ID - run: | - echo "CONTAINER_ID=$(scw container container list namespace-id=${{env.NAMESPACE_ID_LECOFFRE}} -o json | jq -r '.[] | select(.name == "${{ env.CONTAINER_NAME }}") | .id')" >> $GITHUB_ENV - env: - SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY_LECOFFRE }} - SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - SCW_DEFAULT_PROJECT_ID: ${{ env.PROJECT_ID_LECOFFRE }} - SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID_LECOFFRE }} - - name: Deploy the container based on the new image - run: | - env_string="" - while IFS= read -r line; do - if [[ "$line" == *"="* ]]; then - key=$(echo "$line" | cut -d '=' -f 1) - value=$(echo "$line" | cut -d '=' -f 2-) - if [[ -n "$key" ]]; then - env_string+="environment-variables.$key=$value " - fi - fi - done <<< "$ENV_VARS" - env_string=$(echo $env_string | sed 's/ $//') - scw container container update ${{ env.CONTAINER_ID }} $env_string - env: - ENV_VARS: ${{ secrets.ENV }} - SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY_LECOFFRE }} - SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - SCW_DEFAULT_PROJECT_ID: ${{ env.PROJECT_ID_LECOFFRE }} - SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID_LECOFFRE }} - diff --git a/.github/workflows/stg.yml b/.github/workflows/stg.yml deleted file mode 100644 index de6edd82..00000000 --- a/.github/workflows/stg.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Staging - Build & Deploy to Scaleway - -on: - push: - branches: [staging] - -env: - PROJECT_ID_LECOFFRE: 72d08499-37c2-412b-877e-f8af0471654a - NAMESPACE_ID_LECOFFRE: f8137e85-47ad-46a5-9e2e-18af5de829c5 - CONTAINER_REGISTRY_ENDPOINT_LECOFFRE: rg.fr-par.scw.cloud/funcscwlecoffrestgbqbfhtv6 - - IMAGE_NAME: front - CONTAINER_NAME: front - -jobs: - build-and-push-image-lecoffre: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup SSH - run: | - mkdir -p ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - - name: Copy SSH - run: cp ~/.ssh/id_rsa id_rsa - - name: Login to Scaleway Container Registry - uses: docker/login-action@v3 - with: - username: nologin - password: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - registry: ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }} - - name: Build the Docker Image - run: docker build . -t ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }}/${{ env.IMAGE_NAME }} - - name: Push the Docker Image to Scaleway Container Registry - run: docker push ${{ env.CONTAINER_REGISTRY_ENDPOINT_LECOFFRE }}/${{ env.IMAGE_NAME }} - deploy-to-scaleway-lecoffre: - needs: build-and-push-image-lecoffre - runs-on: ubuntu-latest - environment: staging - steps: - - name: Install CLI - uses: scaleway/action-scw@v0 - - name: Get container ID - run: | - echo "CONTAINER_ID=$(scw container container list namespace-id=${{env.NAMESPACE_ID_LECOFFRE}} -o json | jq -r '.[] | select(.name == "${{ env.CONTAINER_NAME }}") | .id')" >> $GITHUB_ENV - env: - SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY_LECOFFRE }} - SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - SCW_DEFAULT_PROJECT_ID: ${{ env.PROJECT_ID_LECOFFRE }} - SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID_LECOFFRE }} - - name: Deploy the container based on the new image - run: | - env_string="" - while IFS= read -r line; do - if [[ "$line" == *"="* ]]; then - key=$(echo "$line" | cut -d '=' -f 1) - value=$(echo "$line" | cut -d '=' -f 2-) - if [[ -n "$key" ]]; then - env_string+="environment-variables.$key=$value " - fi - fi - done <<< "$ENV_VARS" - env_string=$(echo $env_string | sed 's/ $//') - scw container container update ${{ env.CONTAINER_ID }} $env_string - env: - ENV_VARS: ${{ secrets.ENV }} - SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY_LECOFFRE }} - SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY_LECOFFRE }} - SCW_DEFAULT_PROJECT_ID: ${{ env.PROJECT_ID_LECOFFRE }} - SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID_LECOFFRE }}