Compare commits
10 Commits
@nhost/das
...
storage@0.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
438355bff0 | ||
|
|
62b97838fe | ||
|
|
d287191f7a | ||
|
|
b8d2127b06 | ||
|
|
28cec232c8 | ||
|
|
fe853da133 | ||
|
|
c4445135bf | ||
|
|
db7366dfc7 | ||
|
|
31c503e458 | ||
|
|
187d35412e |
2
.github/dependabot.yaml
vendored
2
.github/dependabot.yaml
vendored
@@ -7,7 +7,7 @@ updates:
|
|||||||
interval: "daily"
|
interval: "daily"
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
commit-message:
|
commit-message:
|
||||||
prefix: "chore"
|
prefix: "chore(ci)"
|
||||||
labels:
|
labels:
|
||||||
- "dependencies"
|
- "dependencies"
|
||||||
- "github_actions"
|
- "github_actions"
|
||||||
|
|||||||
16
.github/workflows/ci_release.yaml
vendored
16
.github/workflows/ci_release.yaml
vendored
@@ -38,7 +38,6 @@ jobs:
|
|||||||
if: needs.extract-project.outputs.project == 'cli'
|
if: needs.extract-project.outputs.project == 'cli'
|
||||||
uses: ./.github/workflows/cli_release.yaml
|
uses: ./.github/workflows/cli_release.yaml
|
||||||
with:
|
with:
|
||||||
NAME: dashboard
|
|
||||||
GIT_REF: ${{ github.sha }}
|
GIT_REF: ${{ github.sha }}
|
||||||
VERSION: ${{ needs.extract-project.outputs.version }}
|
VERSION: ${{ needs.extract-project.outputs.version }}
|
||||||
secrets:
|
secrets:
|
||||||
@@ -54,7 +53,6 @@ jobs:
|
|||||||
if: needs.extract-project.outputs.project == '@nhost/dashboard'
|
if: needs.extract-project.outputs.project == '@nhost/dashboard'
|
||||||
uses: ./.github/workflows/dashboard_release.yaml
|
uses: ./.github/workflows/dashboard_release.yaml
|
||||||
with:
|
with:
|
||||||
NAME: dashboard
|
|
||||||
GIT_REF: ${{ github.sha }}
|
GIT_REF: ${{ github.sha }}
|
||||||
VERSION: ${{ needs.extract-project.outputs.version }}
|
VERSION: ${{ needs.extract-project.outputs.version }}
|
||||||
secrets:
|
secrets:
|
||||||
@@ -83,3 +81,17 @@ jobs:
|
|||||||
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
|
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_PRODUCTION }}
|
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_PRODUCTION }}
|
||||||
|
|
||||||
|
storage:
|
||||||
|
needs: extract-project
|
||||||
|
if: needs.extract-project.outputs.project == 'storage'
|
||||||
|
uses: ./.github/workflows/storage_release.yaml
|
||||||
|
with:
|
||||||
|
GIT_REF: ${{ github.sha }}
|
||||||
|
VERSION: ${{ needs.extract-project.outputs.version }}
|
||||||
|
secrets:
|
||||||
|
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
|
||||||
|
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
|
||||||
|
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
|
||||||
|
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|||||||
5
.github/workflows/cli_release.yaml
vendored
5
.github/workflows/cli_release.yaml
vendored
@@ -3,9 +3,6 @@ name: "cli: release"
|
|||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
NAME:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
GIT_REF:
|
GIT_REF:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@@ -79,7 +76,7 @@ jobs:
|
|||||||
- name: Setup Nix with Cache
|
- name: Setup Nix with Cache
|
||||||
uses: ./.github/actions/setup-nix
|
uses: ./.github/actions/setup-nix
|
||||||
with:
|
with:
|
||||||
NAME: ${{ inputs.NAME }}
|
NAME: cli
|
||||||
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
|
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
3
.github/workflows/dashboard_release.yaml
vendored
3
.github/workflows/dashboard_release.yaml
vendored
@@ -4,9 +4,6 @@ name: 'dashboard: release'
|
|||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
NAME:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
GIT_REF:
|
GIT_REF:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|||||||
60
.github/workflows/storage_release.yaml
vendored
Normal file
60
.github/workflows/storage_release.yaml
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
name: "storage: release"
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
GIT_REF:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
VERSION:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
secrets:
|
||||||
|
AWS_ACCOUNT_ID:
|
||||||
|
required: true
|
||||||
|
NIX_CACHE_PUB_KEY:
|
||||||
|
required: true
|
||||||
|
NIX_CACHE_PRIV_KEY:
|
||||||
|
required: true
|
||||||
|
DOCKER_USERNAME:
|
||||||
|
required: true
|
||||||
|
DOCKER_PASSWORD:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_artifacts:
|
||||||
|
uses: ./.github/workflows/wf_build_artifacts.yaml
|
||||||
|
with:
|
||||||
|
NAME: storage
|
||||||
|
PATH: services/storage
|
||||||
|
GIT_REF: ${{ inputs.GIT_REF }}
|
||||||
|
VERSION: ${{ inputs.VERSION }}
|
||||||
|
DOCKER: true
|
||||||
|
secrets:
|
||||||
|
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
|
||||||
|
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
|
||||||
|
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
|
||||||
|
|
||||||
|
push-docker-hub:
|
||||||
|
uses: ./.github/workflows/wf_docker_push_image.yaml
|
||||||
|
needs:
|
||||||
|
- build_artifacts
|
||||||
|
with:
|
||||||
|
NAME: storage
|
||||||
|
PATH: services/storage
|
||||||
|
VERSION: ${{ inputs.VERSION }}
|
||||||
|
secrets:
|
||||||
|
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
|
push-docker-ecr:
|
||||||
|
uses: ./.github/workflows/wf_docker_push_image_ecr.yaml
|
||||||
|
needs:
|
||||||
|
- build_artifacts
|
||||||
|
with:
|
||||||
|
NAME: storage
|
||||||
|
PATH: services/storage
|
||||||
|
VERSION: ${{ inputs.VERSION }}
|
||||||
|
secrets:
|
||||||
|
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
|
||||||
|
CONTAINER_REGISTRY: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.eu-central-1.amazonaws.com
|
||||||
84
.github/workflows/wf_docker_push_image_ecr.yaml
vendored
Normal file
84
.github/workflows/wf_docker_push_image_ecr.yaml
vendored
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
NAME:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
PATH:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
VERSION:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
AWS_ACCOUNT_ID:
|
||||||
|
required: true
|
||||||
|
CONTAINER_REGISTRY:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
push-to-registry:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
id-token: write
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: ${{ inputs.PATH }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Check out repository"
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Configure aws
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4
|
||||||
|
with:
|
||||||
|
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
|
||||||
|
aws-region: eu-central-1
|
||||||
|
|
||||||
|
- name: "Login to Amazon ECR"
|
||||||
|
uses: aws-actions/amazon-ecr-login@v2
|
||||||
|
with:
|
||||||
|
mask-password: 'true'
|
||||||
|
|
||||||
|
- name: "Compute common env vars"
|
||||||
|
id: vars
|
||||||
|
run: |
|
||||||
|
echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: "Get artifacts"
|
||||||
|
uses: actions/download-artifact@v5
|
||||||
|
with:
|
||||||
|
path: ~/artifacts
|
||||||
|
|
||||||
|
- name: "Inspect artifacts"
|
||||||
|
run: find ~/artifacts
|
||||||
|
|
||||||
|
- name: "Push docker image to docker hub"
|
||||||
|
run: |
|
||||||
|
export NAME=${{ inputs.NAME }}
|
||||||
|
export VERSION=${{ steps.vars.outputs.VERSION }}
|
||||||
|
export CONTAINER_REGISTRY=${{ secrets.CONTAINER_REGISTRY }}
|
||||||
|
export CONTAINER_NAME=$CONTAINER_REGISTRY/$NAME
|
||||||
|
|
||||||
|
for ARCH in "x86_64" "aarch64"; do
|
||||||
|
skopeo copy --insecure-policy \
|
||||||
|
dir:/home/runner/artifacts/${{ inputs.NAME }}-docker-image-$ARCH-$VERSION \
|
||||||
|
docker-daemon:$CONTAINER_NAME:$VERSION-$ARCH
|
||||||
|
docker push $CONTAINER_NAME:$VERSION-$ARCH
|
||||||
|
done
|
||||||
|
|
||||||
|
docker manifest create \
|
||||||
|
$CONTAINER_NAME:$VERSION \
|
||||||
|
--amend $CONTAINER_NAME:$VERSION-x86_64 \
|
||||||
|
--amend $CONTAINER_NAME:$VERSION-aarch64
|
||||||
|
|
||||||
|
docker manifest push $CONTAINER_NAME:$VERSION
|
||||||
Reference in New Issue
Block a user