name: Webassembly on: push: branches: [ master ] pull_request: branches: [ master ] schedule: - cron: '10 12 * * 0' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true env: AWS_ACCESS_KEY_ID: ${{secrets.S3_ACCESS_KEY}} AWS_SECRET_ACCESS_KEY: ${{secrets.S3_SECRET_KEY}} AWS_DEFAULT_REGION: us-west-2 jobs: build: name: ${{ matrix.type }}-build runs-on: ubuntu-latest strategy: matrix: type: [client, client-debug] fail-fast: false steps: - uses: actions/checkout@v3 with: fetch-depth: 2 - name: Install dependencies run: | sudo apt-get -qq update sudo apt-get install -y p7zip-full zip - name: Cache dependencies uses: actions/cache@v3 with: path: | 3rdParty/buildCache !3rdParty/buildCache/wasm/vcpkgcache/ key: wasm-${{ matrix.type }}-${{ hashFiles('wasm/*.sh') }} restore-keys: wasm-${{ matrix.type }}- - name: Check if build is running from origin repo if: ${{ success() && env.AWS_ACCESS_KEY_ID != 0 && env.AWS_SECRET_ACCESS_KEY != 0 }} run: | echo "VCPKG_BINARY_SOURCES=clear;x-aws,s3://vcpkg.cache.boinc/,readwrite" >> $GITHUB_ENV - name: Check if build is running from fork if: ${{ success() && (env.AWS_ACCESS_KEY_ID == 0 || env.AWS_SECRET_ACCESS_KEY == 0) }} run: | echo "VCPKG_BINARY_SOURCES=clear;x-aws-config,no-sign-request;x-aws,s3://vcpkg.cache.boinc/,read" >> $GITHUB_ENV - name: Automake if: success() run: ./_autosetup - name: Configure client as webassembly if: success() && matrix.type == 'client' run: wasm/ci_configure_client.sh - name: Configure client as webassembly if: success() && matrix.type == 'client-debug' run: wasm/ci_configure_client.sh debug - name: Make if: success() run: wasm/ci_make.sh - name: Prepare logs on failure if: ${{ failure() }} run: python ./deploy/prepare_deployment.py logs - name: Upload logs on failure if: ${{ failure() }} uses: actions/upload-artifact@v3 with: name: wasm_logs_${{ matrix.type }}_${{ github.event.pull_request.head.sha }} path: deploy/logs.7z - name: Prepare artifacts for deploy if: success() && ! contains(matrix.type, 'libs') && ! contains(matrix.type, 'debug') env: PULL_REQUEST: ${{ github.event.number }} PULL_REQUEST_SHA: ${{ github.event.pull_request.head.sha }} run: python ./deploy/prepare_deployment.py wasm_${{ matrix.type }} - name: Prepare artifacts for debug deploy if: success() && matrix.type == 'client-debug' env: PULL_REQUEST: ${{ github.event.number }} PULL_REQUEST_SHA: ${{ github.event.pull_request.head.sha }} run: python ./deploy/prepare_deployment.py wasm_${{ matrix.type }} - name: Upload artifacts uses: actions/upload-artifact@v3 if: ${{ ! contains(matrix.type, 'libs') }} with: name: wasm_${{ matrix.type }}_${{ github.event.pull_request.head.sha }} path: deploy/wasm_${{ matrix.type }}.7z