diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 1410a02..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,46 +0,0 @@ -version: 2.1 - -orbs: - slack: circleci/slack@4.5.0 - -jobs: - build: - working_directory: ~/repo - docker: - - image: circleci/node - steps: - - checkout - - run: - name: Install dependencies - command: | - export NODE_OPTIONS=--openssl-legacy-provider - npm install - npm run build - - setup_remote_docker: - docker_layer_caching: false - version: 19.03.13 - - run: - name: Build and push docker image - command: | - DOCKER_STR="${DOCKER_REGISTRY}/${DOCKER_NAMESPACE}/${DOCKER_REPO}" - TAG="${DOCKER_STR}:${CIRCLE_BUILD_NUM}" - docker build -t ${TAG} . - docker tag ${TAG} ${DOCKER_STR}:latest - docker login -u ${DOCKER_ALI_USERNAME} -p ${DOCKER_ALI_PWD} ${DOCKER_REGISTRY} - docker push ${TAG} - docker push ${DOCKER_STR}:latest - - slack/notify: - event: fail - template: basic_fail_1 - - slack/notify: - event: pass - template: basic_success_1 - -workflows: - build: - jobs: - - build: - filters: - branches: - only: - - main \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..02424e3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,38 @@ +name: test +on: + push: + branches: [main] +jobs: + build: + if: ${{ startsWith(github.ref, 'refs/heads/deployment/') || github.ref == 'refs/heads/main' }} + runs-on: [self-hosted] + steps: + - name: chceck code + uses: actions/checkout@v2 + + - name: Get version + id: version + run: | + if [[ -n "$GITHUB_REF" && "$GITHUB_REF" == "refs/tags/"* ]]; then + echo "tag version" + echo "::set-output name=version::${GITHUB_REF/refs\/tags\//}" + else + echo "commit version" + echo "::set-output name=version::${{ github.sha }}" + fi + + - name: Build and push + run: | + docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} + docker build -t gitdatateam/pando-network:${{ steps.version.outputs.version }} . + docker push gitdatateam/pando-network:${{ steps.version.outputs.version }} + + docker tag gitdatateam/pando-network:${{ steps.version.outputs.version }} gitdatateam/pando-network:latest + docker push gitdatateam/pando-network:latest + + - name: Deploy + uses: WyriHaximus/github-action-helm3@v3 + with: + exec: helm upgrade pando-network --install ./chart --namespace website --set-string tag=latest + kubeconfig: ${{ secrets.KUBECONTENT }} + overrule_existing_kubeconfig: "true" \ No newline at end of file diff --git a/chart/Chart.yaml b/chart/Chart.yaml new file mode 100644 index 0000000..fef16f4 --- /dev/null +++ b/chart/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: pando-network +description: Install pando.network to provide pando official web page. +version: 1.0.0 +kubeVersion: < 1.28.0-0 +home: https://pando.network/ +keywords: + - pando-network +sources: + - https://github.com/pando-project/pando-web +maintainers: + - name: pando team diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml new file mode 100644 index 0000000..e73a990 --- /dev/null +++ b/chart/templates/deployment.yaml @@ -0,0 +1,24 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: pando-network-deployment + labels: + apptype: pando-network +spec: + replicas: {{ .Values.replicas}} + selector: + matchLabels: + app: pando-network + template: + metadata: + labels: + app: pando-network + apptype: pando-network + date: "{{ now | unixEpoch }}" + spec: + containers: + - name: pando-network + image: gitdatateam/pando-network:{{ .Values.tag }} + imagePullPolicy: Always + ports: + - containerPort: 80 diff --git a/chart/templates/ingress.yaml b/chart/templates/ingress.yaml new file mode 100644 index 0000000..3a3cff0 --- /dev/null +++ b/chart/templates/ingress.yaml @@ -0,0 +1,28 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: pando-network + annotations: + meta.helm.sh/release-name: pando-network + nginx.ingress.kubernetes.io/rewrite-target: / + nginx.ingress.kubernetes.io/proxy-connect-timeout: "30" + nginx.ingress.kubernetes.io/proxy-read-timeout: "1800" + nginx.ingress.kubernetes.io/proxy-send-timeout: "1800" + labels: + apptype: pando-network + app.kubernetes.io/managed-by: Helm + heritage: Helm + release: pando-network +spec: + ingressClassName: {{.Values.ingress_name}} + rules: + - host: pando-network + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: pando-network-service + port: + number: 80 diff --git a/chart/templates/service.yaml b/chart/templates/service.yaml new file mode 100644 index 0000000..6a15c57 --- /dev/null +++ b/chart/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: pando-network-service + labels: + apptype: pando-network +spec: + type: ClusterIP + selector: + app: pando-network + ports: + - protocol: TCP + port: 80 + targetPort: 80 \ No newline at end of file diff --git a/chart/values.yaml b/chart/values.yaml new file mode 100644 index 0000000..a481e3e --- /dev/null +++ b/chart/values.yaml @@ -0,0 +1,6 @@ +# Additional Trusted CAs. +# Enable this flag and add your CA certs as a secret named tls-ca-additional in the namespace. +# See README.md for details. +replicas: 1 +ingress_name: nginx +tag: latest \ No newline at end of file