diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index c22b00ae..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,249 +0,0 @@ -name: CI -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -jobs: - build_frontend: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 14.x - - name: Setup - run: npm install - - name: Build - run: make build_frontend - - uses: actions/upload-artifact@master - with: - name: build-frontend - path: server/ctrl/static/www/ - - build_backend: - needs: build_frontend - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/download-artifact@master - with: - name: build-frontend - path: server/ctrl/static/www/ - - uses: actions/setup-go@v3.5.0 - with: - go-version: 1.19 - - name: Setup - run: | - sudo apt install -y libraw-dev libjpeg-dev libpng-dev libheif-dev libwebp-dev libgif-dev - sudo apt install -y build-essential libstdc++6 libomp-dev - mkdir -p ./dist/data/state/config - cp config/config.json ./dist/data/state/config/ - - name: Build - run: | - make build_init - make build_backend - - uses: actions/upload-artifact@master - with: - name: build - path: dist - - name: Verify - run: timeout 5 ./dist/filestash || code=$?; if [[ $code -ne 124 ]]; then exit $code; fi - - test_frontend: - needs: [build_frontend, build_backend] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Clone test repo - uses: actions/checkout@v3 - with: - repository: mickael-kerjean/filestash-test - ssh-key: ${{ secrets.DEPLOY_KEY_FILESTASH_TEST }} - path: test - - uses: actions/setup-node@v3 - with: - node-version: 14.x - - name: Setup - run: | - npm install - cd ./test/unit_js - npm install - - name: Run - run: | - cd ./test/unit_js - npm test - - # verify_frontend: - # needs: [build_frontend, build_backend] - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v3 - # - uses: actions/setup-node@v3 - # with: - # node-version: 14.x - # - name: Setup - # run: cd public && npm install - # - name: Run - # run: | - # cd public - # # npx eslint . - # npx tsc - - test_backend: - needs: [build_frontend, build_backend] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Clone test repo - uses: actions/checkout@v3 - with: - repository: mickael-kerjean/filestash-test - ssh-key: ${{ secrets.DEPLOY_KEY_FILESTASH_TEST }} - path: test - - uses: actions/download-artifact@v3 - with: - name: build-frontend - path: server/ctrl/static/www/ - - uses: actions/setup-go@v3.5.0 - with: - go-version: 1.19 - - name: Setup - run: | - sudo apt-get install -y poppler-utils - cp ./test/assets/* /tmp/ - mkdir server/ctrl/static/www/ && touch server/ctrl/static/www/index.html - make build_init - rm -rf server/generator/ - go generate ./test/unit_go/... - go get github.com/stretchr/testify/assert - go mod vendor - - name: Run - run: go test --tags "fts5" -count=1 $(go list ./server/... | grep -v "server/plugin" | grep -v "server/generator") - - test_smoke: - needs: [build_frontend, build_backend] - runs-on: ubuntu-latest - steps: - - name: Init - uses: actions/download-artifact@v3 - with: - name: build - - name: Run - run: | - chmod +x filestash - timeout 5 ./filestash > access.log || code=$?; if [[ $code -ne 124 ]]; then exit $code; fi - echo "========= access.log " - cat access.log - echo "=====================" - cat access.log | grep -q "Filestash v0.5 starting" - cat access.log | grep -q "listening on :" - cat access.log | grep -vz "WARN" - cat access.log | grep -vz "ERR" - - # test_e2e: - # needs: [test_smoke] - # runs-on: ubuntu-latest - # container: - # image: machines/puppeteer - # options: --user root - # env: - # ADMIN_PASSWORD: $2a$10$9OFbPZV4lYpYjU5eUi91o.kgeMyCuW11j878YBRri3gBwccq2lSFy - # APP_URL: http://127.0.0.1:8334 - # CI: true - # steps: - # - uses: actions/checkout@v3 - # - name: Clone test repo - # uses: actions/checkout@v3 - # with: - # repository: mickael-kerjean/filestash-test - # ssh-key: ${{ secrets.DEPLOY_KEY_FILESTASH_TEST }} - # path: test - # - name: Restore Build - # uses: actions/download-artifact@v3 - # with: - # name: build - # - name: Setup - # run: | - # cd ./test/e2e - # npm install - # - name: Run - # run: | - # chmod +x ./filestash - # ./filestash > /dev/null & - # cd ./test/e2e - # node servers/webdav.js > /dev/null & - # npm test - - release_docker_amd64: - # if: github.ref == 'refs/heads/master' - needs: [ test_backend, test_frontend, test_smoke ] - runs-on: ubuntu-latest - steps: - - name: Init - uses: actions/checkout@v3 - - name: Setup - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Run - run: | - docker build -t machines/filestash:latest-amd64 ./docker/ - docker push machines/filestash:latest-amd64 - - release_docker_arm64: - if: github.ref == 'refs/heads/master' - needs: [ test_backend, test_frontend, test_smoke ] - runs-on: ubuntu-latest - steps: - - name: Init - uses: actions/checkout@v3 - - name: Setup - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Run - run: | - uname -m - uname -a - docker version - # docker build -t machines/filestash:latest-arm64 ./docker/ - # echo "DONE" - - release_docker: - needs: [ release_docker_amd64, release_docker_arm64 ] - runs-on: ubuntu-latest - steps: - - name: Init - uses: actions/checkout@v3 - - name: Setup - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Run - run: | - docker manifest create machines/filestash:latest \ - --amend machines/filestash:latest-amd64 \ - --amend machines/filestash:latest-arm64v8 - docker manifest push machines/filestash:latest - - deploy: - if: github.ref == 'refs/heads/master' - needs: release_docker - runs-on: ubuntu-latest - steps: - - name: Setup - uses: Azure/k8s-set-context@v1 - with: - method: kubeconfig - kubeconfig: ${{ secrets.KUBE_CONFIG }} - - name: Deploy - run: kubectl rollout restart deployment app-filestash-demo -n filestash \ No newline at end of file