diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml new file mode 100644 index 0000000..fb3ff81 --- /dev/null +++ b/.github/workflows/deployment.yml @@ -0,0 +1,54 @@ +name: Build and deploy staging + +on: + push: + branches: + - staging + +env: + DEPLOYMENT: ticket-office + DEPLOYMENT_NAMESPACE: ticket-office + DEPLOYMENT_URL: https://ticket-office.staging.dataesr.ovh + MM_NOTIFICATION_CHANNEL: bots + +jobs: + publish-ghcr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: 🪚 Build app + run: | + npm install + npm run build + + - name: 🔑 Login Docker + run: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} + + - name: 🐳 Build Docker image + run: | + IMAGE_ID=ghcr.io/dataesr/ticket-office + IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') + docker build -t $IMAGE_ID:staging . + + - name: 📦 Push Docker image + run: | + IMAGE_ID=ghcr.io/dataesr/ticket-office + IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') + docker push $IMAGE_ID:${{ steps.version.outputs.tag }} + + notify: + name: 📢 Notify in mattermost channel + needs: deploy + if: always() + runs-on: ubuntu-latest + steps: + - uses: dataesr/mm-notifier-action@v1.0.2 + with: + github_token: ${{ secrets.GITHUB_TOKEN}} + mattermost_webhook_url: ${{ secrets.MATTERMOST_WEBHOOK_URL }} + mattermost_channel: ${{ env.MM_NOTIFICATION_CHANNEL}} + deployment_url: ${{ env.DEPLOYMENT_URL }} diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml deleted file mode 100644 index 8612766..0000000 --- a/.github/workflows/production.yml +++ /dev/null @@ -1,33 +0,0 @@ -# name: Deployment workflow - -# on: -# push: -# branches: -# - main - -# jobs: -# deploy: -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v3 -# - name: Build vite dist folder -# id: build -# run: npm i && npm run build --mode=production -# - name: S3 deployment -# id: s3-deploy -# uses: dataesr/ovh-s3-deploy@v1 -# with: -# access_key: ${{ secrets.S3_ACCESS_KEY }} -# secret_key: ${{ secrets.S3_SECRET_KEY }} - -# notify: -# needs: deploy -# if: always() -# runs-on: ubuntu-latest -# steps: -# - uses: dataesr/mm-notifier-action@v1 -# with: -# github_token: ${{ secrets.GITHUB_TOKEN }} -# mattermost_webhook_url: ${{ secrets.MATTERMOST_WEBHOOK_URL }} -# mattermost_channel: bots -# deployment_url: ${{ steps.s3-deploy.outputs.deployment_url }}