Skip to content

Commit

Permalink
ci: fix caching
Browse files Browse the repository at this point in the history
  • Loading branch information
ali-hosseini-deriv committed Jan 8, 2024
1 parent c724502 commit d79cdf1
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 94 deletions.
27 changes: 12 additions & 15 deletions .github/actions/bundle_install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,15 @@ description: Bundle Install
runs:
using: composite
steps:
- restore_cache:
name: Bundle modules cache restore
keys:
- bundle-v1-{{ checksum "Gemfile" }}
- bundle-v1-
- bundle_install:
name: Bundle install
run: |
bundle install --path ./modules
- save_cache:
name: Bundle modules cache save
key: bundle-v1-{{ checksum "Gemfile" }}
with:
paths:
- "modules"
- name: Bundle modules cache restore
id: cache-modules
uses: actions/cache/restore@v3
with:
path: ./modules
key: bundle-v1-{{ checksum "Gemfile" }}

- name: Bundle install
if: steps.cache-modules.outputs.cache-hit != 'true'
shell: bash
run: bundle install --path ./modules

2 changes: 1 addition & 1 deletion .github/actions/invalidate_master_cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ runs:
- name: save_cache
uses: actions/cache/save@v3
with:
path: ./node_modules
path: ./modules
key: v1-deps-{{ checksum "Gemfile" }}
102 changes: 52 additions & 50 deletions .github/workflows/release-production.yml
Original file line number Diff line number Diff line change
@@ -1,55 +1,57 @@
name: Websocket Production Workflow
on:
push:
tags:
- production_*
branches:
- master
jobs:
build_test_and_publish:
name: Build, Test and Publish to Production
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Bundle Install
uses: ./.github/actions/bundle_install
- name: Build Jekyll site
uses: ./.github/actions/build
- name: Versioning
uses: ./.github/actions/versioning
with:
release_type: production
- name: Publish to Cloudflare Pages Production
uses: "./.github/actions/publish_to_pages_production"
with:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- name: Build Docker image and push to Docker hub and K8S
uses: "./.github/actions/build_and_push_docker_image"
with:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }}
K8S_NAMESPACE: "developers-binary-com-production"
KUBE_SERVER: ${{ secrets.KUBE_SERVER }}
SERVICEACCOUNT_TOKEN: ${{ secrets.SERVICEACCOUNT_TOKEN }}
CA_CRT: ${{ secrets.CA_CRT }}
APP_VERSION: latest
build_test_and_publish:
name: Build, Test and Publish to Production
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Bundle Install
uses: ./.github/actions/bundle_install
- name: Build Jekyll site
uses: ./.github/actions/build
- name: invalidate master cache
uses: ./.github/actions/invalidate_master_cache
- name: Versioning
uses: ./.github/actions/versioning
with:
release_type: production
- name: Publish to Cloudflare Pages Production
uses: "./.github/actions/publish_to_pages_production"
with:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- name: Build Docker image and push to Docker hub and K8S
uses: "./.github/actions/build_and_push_docker_image"
with:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }}
K8S_NAMESPACE: "developers-binary-com-production"
KUBE_SERVER: ${{ secrets.KUBE_SERVER }}
SERVICEACCOUNT_TOKEN: ${{ secrets.SERVICEACCOUNT_TOKEN }}
CA_CRT: ${{ secrets.CA_CRT }}
APP_VERSION: latest


send_slack_notification:
name: Send Slack notification
runs-on: ubuntu-latest
environment: Production
if: always()
needs: [build_test_and_publish]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Conclusion
uses: technote-space/workflow-conclusion-action@v3
- name: Send Slack Notification
uses: "./.github/actions/send_slack_notifications"
with:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
status: ${{ env.WORKFLOW_CONCLUSION }}
release_type: Production
version: $GITHUB_REF_NAME
send_slack_notification:
name: Send Slack notification
runs-on: ubuntu-latest
if: always()
needs: [build_test_and_publish]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Conclusion
uses: technote-space/workflow-conclusion-action@v3
- name: Send Slack Notification
uses: "./.github/actions/send_slack_notifications"
with:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
status: ${{ env.WORKFLOW_CONCLUSION }}
release_type: Production
version: $GITHUB_REF_NAME
56 changes: 28 additions & 28 deletions .github/workflows/release-staging.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
name: Websocket Staging Workflow
on:
push:
branches:
push:
branches:
- master
jobs:
build_test_and_publish:
name: Build, Test and Publish to Staging
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Bundle Install
uses: ./.github/actions/bundle_install
- name: Build Jekyll site
uses: ./.github/actions/build
- name: Versioning
uses: ./.github/actions/versioning
with:
release_type: staging
- name: Publish to Cloudflare Pages Staging
uses: "./.github/actions/publish_to_pages_staging"
with:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- name: Build Docker image and push to Docker hub and K8S
uses: "./.github/actions/build_and_push_docker_image"
with:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }}
K8S_NAMESPACE: "developers-binary-com-staging"
KUBE_SERVER: ${{ secrets.KUBE_SERVER }}
SERVICEACCOUNT_TOKEN: ${{ secrets.SERVICEACCOUNT_TOKEN }}
CA_CRT: ${{ secrets.CA_CRT }}
APP_VERSION: latest-staging
- name: Checkout
uses: actions/checkout@v4
- name: Bundle Install
uses: ./.github/actions/bundle_install
- name: Build Jekyll site
uses: ./.github/actions/build
- name: Versioning
uses: ./.github/actions/versioning
with:
release_type: staging
- name: Publish to Cloudflare Pages Staging
uses: "./.github/actions/publish_to_pages_staging"
with:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- name: Build Docker image and push to Docker hub and K8S
uses: "./.github/actions/build_and_push_docker_image"
with:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }}
K8S_NAMESPACE: "developers-binary-com-staging"
KUBE_SERVER: ${{ secrets.KUBE_SERVER }}
SERVICEACCOUNT_TOKEN: ${{ secrets.SERVICEACCOUNT_TOKEN }}
CA_CRT: ${{ secrets.CA_CRT }}
APP_VERSION: latest-staging

0 comments on commit d79cdf1

Please sign in to comment.