Skip to content

nightly

nightly #1858

Workflow file for this run

name: nightly
on:
workflow_dispatch:
push:
branches:
- master
schedule:
- cron: "0 0 * * *"
jobs:
build-matrix:
runs-on: ubuntu-latest
steps:
- id: set-matrix
run: |
sudo apt-get install jq
testmode=("pod" "pod-mount-share" "pod-provisioner" "webhook" "webhook-provisioner" "process")
value=`printf '%s\n' "${testmode[@]}" | jq -R . | jq -cs .`
echo "value: $value"
echo "matrix=$value" >> $GITHUB_OUTPUT
wtestmode=("pod" "pod-mount-share" "pod-provisioner")
value=`printf '%s\n' "${wtestmode[@]}" | jq -R . | jq -cs .`
echo "value without kubelet: $value"
echo "wmatrix=$value" >> $GITHUB_OUTPUT
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
wmatrix: ${{ steps.set-matrix.outputs.wmatrix }}
e2e-ce-without-kubelet-test:
runs-on: ubuntu-latest
needs: build-matrix
strategy:
fail-fast: false
matrix:
testmode: ${{ fromJson(needs.build-matrix.outputs.wmatrix) }}
steps:
- uses: actions/checkout@v2
- name: Build docker image nightly
# env:
# JFSCHAN: beta
run: |
make -C docker image-nightly
- name: Prepare microk8s environment
run: |
${GITHUB_WORKSPACE}/.github/scripts/k8s-deps.sh
docker image save -o juicefs-csi-driver-nightly.tar juicedata/juicefs-csi-driver:nightly
sudo microk8s.ctr image import juicefs-csi-driver-nightly.tar
rm -f juicefs-csi-driver-nightly.tar
- name: Deploy JuiceFS CSI
run: |
testmode=${{matrix.testmode}}
export dev_tag=nightly
.github/scripts/deploy-csi-in-k8s.sh ${testmode} withoutkubelet
- name: Run e2e test
env:
JUICEFS_STORAGE: s3
JUICEFS_BUCKET: "http://juicefs-bucket.minio.default.svc.cluster.local:9000"
JUICEFS_ACCESS_KEY: "minioadmin"
JUICEFS_SECRET_KEY: "minioadmin"
JUICEFS_NAME: "ce-secret"
JUICEFS_META_URL: "redis://redis.default.svc.cluster.local:6379/1"
JUICEFS_MODE: ce
TEST_MODE: ${{matrix.testmode}}
run: |
cd ${GITHUB_WORKSPACE}/.github/scripts/
python3 e2e-test.py
- name: Setup upterm session
if: ${{ failure() }}
timeout-minutes: 60
uses: lhotari/action-upterm@v1
e2e-ee-without-kubelet-test:
runs-on: ubuntu-latest
needs: build-matrix
strategy:
fail-fast: false
matrix:
testmode: ${{ fromJson(needs.build-matrix.outputs.wmatrix) }}
steps:
- uses: actions/checkout@v2
- name: Build docker image nightly
# env:
# JFSCHAN: beta
run: |
make -C docker image-nightly
- name: Prepare microk8s environment
run: |
${GITHUB_WORKSPACE}/.github/scripts/k8s-deps.sh
docker image save -o juicefs-csi-driver-nightly.tar juicedata/juicefs-csi-driver:nightly
sudo microk8s.ctr image import juicefs-csi-driver-nightly.tar
rm -f juicefs-csi-driver-nightly.tar
- name: Deploy JuiceFS CSI
run: |
testmode=${{matrix.testmode}}
cd ${GITHUB_WORKSPACE}
export dev_tag=nightly
.github/scripts/deploy-csi-in-k8s.sh ${testmode} withoutkubelet
- name: Run e2e test
env:
JUICEFS_TOKEN: ${{ secrets.JUICEFS_CI_VOLUME_TOKEN }}
JUICEFS_STORAGE: s3
JUICEFS_BUCKET: "http://juicefs-bucket.minio.default.svc.cluster.local:9000"
JUICEFS_ACCESS_KEY: "minioadmin"
JUICEFS_SECRET_KEY: "minioadmin"
JUICEFS_NAME: "csi-ci"
JUICEFS_META_URL: ""
JUICEFS_MODE: "ee"
TEST_MODE: ${{matrix.testmode}}
run: |
cd ${GITHUB_WORKSPACE}/.github/scripts/
python3 e2e-test.py
- name: Setup upterm session
if: ${{ failure() }}
timeout-minutes: 60
uses: lhotari/action-upterm@v1
e2e-ce-test:
runs-on: ubuntu-latest
needs: build-matrix
strategy:
fail-fast: false
matrix:
testmode: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
steps:
- uses: actions/checkout@v2
- name: Build docker image nightly
# env:
# JFSCHAN: beta
run: |
make -C docker image-nightly
- name: Prepare microk8s environment
run: |
${GITHUB_WORKSPACE}/.github/scripts/k8s-deps.sh
docker image save -o juicefs-csi-driver-nightly.tar juicedata/juicefs-csi-driver:nightly
sudo microk8s.ctr image import juicefs-csi-driver-nightly.tar
rm -f juicefs-csi-driver-nightly.tar
- name: Deploy JuiceFS CSI
run: |
testmode=${{matrix.testmode}}
export dev_tag=nightly
.github/scripts/deploy-csi-in-k8s.sh ${testmode}
- name: Run e2e test
env:
JUICEFS_STORAGE: s3
JUICEFS_BUCKET: "http://juicefs-bucket.minio.default.svc.cluster.local:9000"
JUICEFS_ACCESS_KEY: "minioadmin"
JUICEFS_SECRET_KEY: "minioadmin"
JUICEFS_NAME: "ce-secret"
JUICEFS_META_URL: "redis://redis.default.svc.cluster.local:6379/1"
JUICEFS_MODE: ce
TEST_MODE: ${{matrix.testmode}}
run: |
cd ${GITHUB_WORKSPACE}/.github/scripts/
python3 e2e-test.py
- name: Setup upterm session
if: ${{ failure() }}
timeout-minutes: 60
uses: lhotari/action-upterm@v1
e2e-ee-test:
runs-on: ubuntu-latest
needs: build-matrix
strategy:
fail-fast: false
matrix:
testmode: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
steps:
- uses: actions/checkout@v2
- name: Build docker image nightly
# env:
# JFSCHAN: beta
run: |
make -C docker image-nightly
- name: Prepare microk8s environment
run: |
${GITHUB_WORKSPACE}/.github/scripts/k8s-deps.sh
docker image save -o juicefs-csi-driver-nightly.tar juicedata/juicefs-csi-driver:nightly
sudo microk8s.ctr image import juicefs-csi-driver-nightly.tar
rm -f juicefs-csi-driver-nightly.tar
- name: Deploy JuiceFS CSI
run: |
testmode=${{matrix.testmode}}
export dev_tag=nightly
.github/scripts/deploy-csi-in-k8s.sh ${testmode}
- name: Run e2e test
env:
JUICEFS_TOKEN: ${{ secrets.JUICEFS_CI_VOLUME_TOKEN }}
JUICEFS_STORAGE: s3
JUICEFS_BUCKET: "http://juicefs-bucket.minio.default.svc.cluster.local:9000"
JUICEFS_ACCESS_KEY: "minioadmin"
JUICEFS_SECRET_KEY: "minioadmin"
JUICEFS_NAME: "csi-ci"
JUICEFS_META_URL: ""
JUICEFS_MODE: "ee"
TEST_MODE: ${{matrix.testmode}}
run: |
cd ${GITHUB_WORKSPACE}/.github/scripts/
python3 e2e-test.py
- name: Setup upterm session
if: ${{ failure() }}
timeout-minutes: 60
uses: lhotari/action-upterm@v1
success-all-test:
runs-on: ubuntu-latest
needs: [ e2e-ce-test, e2e-ee-test ]
if: always()
steps:
- uses: technote-space/workflow-conclusion-action@v3
- uses: actions/checkout@v3
- name: Check Failure
if: env.WORKFLOW_CONCLUSION == 'failure'
run: exit 1
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9
run_install: |
cwd: dashboard-ui-v2
- name: Build dashboard
run: make dashboard-dist
- name: Buildx and Push docker image nightly
env:
PASSWORD: ${{ secrets.DOCKERHUB_FUSE_ACCESS_TOKEN }}
# JFSCHAN: beta
CEVERSION: ce-nightly
EEVERSION: ee-nightly
DASHBOARD_TAG: nightly
run: |
docker login --username chnliyong --password ${PASSWORD}
make -C docker image-nightly
make -C docker image-nightly-push
make -C docker ce-image
make -C docker ee-image
make -C docker dashboard-build
- name: Success
if: ${{ success() }}
run: echo "All Done"