Skip to content

Commit

Permalink
πŸ”§ add workflow file for all studios and web #2672
Browse files Browse the repository at this point in the history
  • Loading branch information
millianapia committed Nov 12, 2024
1 parent 7f1140c commit b1355cc
Showing 1 changed file with 172 additions and 0 deletions.
172 changes: 172 additions & 0 deletions .github/workflows/PROD-all-webs-and-studios.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
name: PROD - Deploy All Studios and Webs
on:
workflow_dispatch:
permissions:
id-token: write
jobs:
# Update Radix config for both studios and webs
update-radix-config:
runs-on: ubuntu-latest
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
steps:
- name: Checkout internal πŸ›ŽοΈ
id: checkout-internal
uses: actions/checkout@v3
with:
repository: 'equinor/energyvision-internal'
ref: main
token: ${{ secrets.PADMS_PAT }}
- name: Promote preprod tag to prod (studios) πŸ—’οΈ
if: github.ref == 'refs/heads/main'
shell: bash
id: promote-studios
run: |
python3 -m venv venv
source venv/bin/activate
python -m pip install ruamel.yaml
python ci/promoteAllToProduction.py studio
git config --global user.name 'github'
git config --global user.email '[email protected]'
git remote set-url origin https://x-access-token:${{ secrets.PADMS_PAT }}@github.com/equinor/energyvision-internal
if [[ `git status --porcelain` ]]; then
git commit -am "πŸš€ Deploy all studios to production"
git pull --rebase origin main
git push origin HEAD:main
fi
- name: Promote preprod tag to prod (webs) πŸ—’οΈ
if: github.ref == 'refs/heads/main'
shell: bash
id: promote-webs
run: |
python3 -m venv venv
source venv/bin/activate
python -m pip install ruamel.yaml
python ci/promoteAllToProduction.py web
git config --global user.name 'github'
git config --global user.email '[email protected]'
git remote set-url origin https://x-access-token:${{ secrets.PADMS_PAT }}@github.com/equinor/energyvision-internal
if [[ `git status --porcelain` ]]; then
git commit -am "πŸš€ Deploy all web sites to production"
git pull --rebase origin main
git push origin HEAD:main
fi
- uses: act10ns/slack@v2
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
if: failure()

# Deploy all studios
deploy-studios:
needs: update-radix-config
runs-on: ubuntu-latest
environment:
name: production
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SANITY_STUDIO_API_PROJECT_ID: w3b4om14
SANITY_STUDIO_MUTATION_TOKEN: ${{ secrets.SANITY_STUDIO_SECRET_MUTATION_TOKEN }}
SANITY_STUDIO_PREVIEW_SECRET: ${{ secrets.SANITY_STUDIO_SECRET_PREVIEW_SECRET }}
SANITY_STUDIO_BRANDMASTER_URL: ${{ secrets.SANITY_STUDIO_BRANDMASTER_URL }}
SANITY_STUDIO_BRANDMASTER_PLUGIN_SOURCE: ${{ secrets.SANITY_STUDIO_BRANDMASTER_PLUGIN_SOURCE }}
SANITY_STUDIO_API_DATASET: secret
SANITY_STUDIO_FOTOWARE_CLIENT_ID: ${{ secrets.SANITY_STUDIO_FOTOWARE_CLIENT_ID }}
SANITY_STUDIO_FOTOWARE_TENANT_URL: ${{ secrets.SANITY_STUDIO_FOTOWARE_TENANT_URL }}
SANITY_STUDIO_FOTOWARE_REDIRECT_ORIGIN: ${{ secrets.SANITY_STUDIO_FOTOWARE_REDIRECT_ORIGIN }}
SANITY_STUDIO_FOTOWARE_AF_EXPORT_URL: ${{ secrets.SANITY_STUDIO_FOTOWARE_AF_EXPORT_URL }}
SANITY_STUDIO_FOTOWARE_AF_EXPORT_KEY: ${{ secrets.SANITY_STUDIO_FOTOWARE_AF_EXPORT_KEY }}
SANITY_STUDIO_SCREEN9_ACCOUNT_ID: ${{ secrets.SANITY_STUDIO_SCREEN9_ACCOUNT_ID }}
SANITY_STUDIO_SCREEN9_TOKEN: ${{ secrets.SANITY_STUDIO_SCREEN9_TOKEN }}
DOCKER_BUILDKIT: 1
steps:
- name: Checkout internal πŸ›ŽοΈ
id: checkout-internal
uses: actions/checkout@v3
with:
repository: 'equinor/energyvision-internal'
ref: main
token: ${{ secrets.PADMS_PAT }}
- name: Install dependencies and deploy studios
run: |
pnpm install
pnpm sanityv3 install
pnpm run deploy --workspace sanityv3
- uses: act10ns/slack@v2
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
if: failure()

# Deploy all webs
deploy-webs:
needs: update-radix-config
runs-on: ubuntu-latest
environment:
name: production
url: https://equinor.com
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
DOCKER_BUILDKIT: 1
steps:
- name: Checkout internal πŸ›ŽοΈ
uses: actions/checkout@v3
- name: Deploy to Radix backup πŸš€
id: deploy-backup
uses: equinor/radix-github-actions@master
with:
args: >
create job
deploy
--token-environment
--context production
-a equinor-web-sites
-e ${{ secrets.ENV }}
-f
- name: Deploy to Radix main πŸš€
id: deploy-main
uses: equinor/radix-github-actions@master
with:
args: >
create job
deploy
--token-environment
--context platform2
-a equinor-web-sites
-e ${{ secrets.ENV }}
-f
- uses: act10ns/slack@v2
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
if: failure()

# Store image tags
store-image-tags:
needs: [deploy-studios, deploy-webs]
runs-on: ubuntu-latest
steps:
- name: Checkout internal πŸ›ŽοΈ
id: checkout-internal
uses: actions/checkout@v3
with:
repository: 'equinor/energyvision-internal'
ref: main
token: ${{ secrets.PADMS_PAT }}
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies and store image tags
run: |
npm install js-yaml
node ci/storeImageTags.js studio
node ci/storeImageTags.js web
- name: Commit and push changes
run: |
git config --global user.name 'github'
git config --global user.email '[email protected]'
git remote set-url origin https://x-access-token:${{ secrets.PADMS_PAT }}@github.com/equinor/energyvision-internal
git add latest-prod-tags.json
git commit -m "Update latest-prod-tags.json with new tags" || echo "No changes to commit"
git push

0 comments on commit b1355cc

Please sign in to comment.