nightly #1960
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | |
JUICEFS_CSI_REPO_REF: ${{ github.ref }} | |
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: | |
JUICEFS_CSI_REPO_REF: ${{ github.ref }} | |
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: | |
JUICEFS_CSI_REPO_REF: ${{ github.ref }} | |
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: | |
JUICEFS_CSI_REPO_REF: ${{ github.ref }} | |
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" | |