name: OpenWRT OPENWISP MONITORING CI Build on: push: branches: - master pull_request: branches: - master jobs: tests: name: QA-Checks and Tests runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python uses: actions/setup-python@v2 with: python-version: 3.7 - name: Install Python dependencies run: pip install openwisp-utils[qa]>=0.7 - name: Install Development dependencies run: sudo ./install-dev.sh - name: QA-Checks run: ./run-qa-checks env: CI: 1 - name: Run sh-checker uses: luizm/action-sh-checker@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: sh_checker_comment: true - name: Tests run: ./runtests - name: Upload Coverage run: | cd openwisp-monitoring/tests luacov-coveralls -v env: COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} build: name: Build and upload package as artifacts needs: tests runs-on: ubuntu-20.04 env: BUILD_DIR: '/home/runner/work/build' DOWNLOADS_DIR: '/home/runner/work/downloads' CORES: 2 steps: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Cache OpenWRT dependencies id: cache uses: actions/cache@v2 env: cache-name: cache-openwrt-dependencies with: path: '/home/runner/work/build' key: ${{ runner.os }}-build-${{ env.cache-name }} - name: Set Environment run: | echo "START_TIME=$(date +"%Y-%m-%d")" >> $GITHUB_ENV echo "COMMIT_SHA=$(git log --pretty=format:'%h' -n 1)" >> $GITHUB_ENV - name: Install dependencies run: sudo apt install gawk - name: Run Build run: ./runbuild env: CI_CACHE: ${{ steps.cache.outputs.cache-hit }} - name: Upload packages as artifacts uses: actions/upload-artifact@v2 with: name: Packages path: "${{ env.DOWNLOADS_DIR }}/${{ env.START_TIME }}" - name: Setup Google Cloud uses: google-github-actions/setup-gcloud@v0 with: service_account_key: ${{ secrets.GCS_DOWNLOADS_SERVICE_ACCOUNT_JSON }} project_id: ${{ secrets.GCS_PROJECT_ID }} export_default_credentials: true - name: Upload compiled packages to downloads.openwisp.io if: ${{ github.event_name=='push' }} run: | gsutil -m rsync -r ${{ env.SRC_URL }} ${{ env.DST_URL }} gsutil -m rsync -r -d ${{ env.SRC_URL }} ${{ env.LATEST_URL }} env: SRC_URL: ${{ env.DOWNLOADS_DIR }}/${{ env.START_TIME }}/openwisp_monitoring DST_URL: gs://${{ secrets.GCS_DOWNLOADS_BUCKET_NAME }}/openwisp-monitoring/${{ env.START_TIME }}-${{ env.COMMIT_SHA }} LATEST_URL: gs://${{ secrets.GCS_DOWNLOADS_BUCKET_NAME }}/openwisp-monitoring/latest