|
|
@@ -0,0 +1,92 @@
|
|
|
+name: Deploy Any Branch to Cloudflare
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_dispatch:
|
|
|
+ inputs:
|
|
|
+ branch:
|
|
|
+ description: "Git branch to build & deploy"
|
|
|
+ required: true
|
|
|
+ default: "main"
|
|
|
+
|
|
|
+env:
|
|
|
+ CLOJURE_VERSION: "1.11.1.1413"
|
|
|
+ NODE_VERSION: "22"
|
|
|
+ JAVA_VERSION: "11"
|
|
|
+
|
|
|
+jobs:
|
|
|
+ build-and-deploy:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: Checkout selected branch
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ with:
|
|
|
+ ref: ${{ inputs.branch }}
|
|
|
+ fetch-depth: 0
|
|
|
+
|
|
|
+ - name: Setup Java JDK
|
|
|
+ uses: actions/setup-java@v4
|
|
|
+ with:
|
|
|
+ distribution: "zulu"
|
|
|
+ java-version: ${{ env.JAVA_VERSION }}
|
|
|
+
|
|
|
+ - name: Set up Node
|
|
|
+ uses: actions/setup-node@v4
|
|
|
+ with:
|
|
|
+ node-version: ${{ env.NODE_VERSION }}
|
|
|
+
|
|
|
+ - name: Setup Clojure
|
|
|
+ uses: DeLaGuardo/[email protected]
|
|
|
+ with:
|
|
|
+ cli: ${{ env.CLOJURE_VERSION }}
|
|
|
+
|
|
|
+ - name: Install Yarn deps
|
|
|
+ run: yarn install --frozen-lockfile
|
|
|
+
|
|
|
+ - name: Set build environment flags
|
|
|
+ run: |
|
|
|
+ echo "ENABLE_FILE_SYNC_PRODUCTION=true" >> $GITHUB_ENV
|
|
|
+ echo "ENABLE_RTC_SYNC_PRODUCTION=true" >> $GITHUB_ENV
|
|
|
+
|
|
|
+ - name: Build web + workers
|
|
|
+ run: |
|
|
|
+ yarn gulp:build
|
|
|
+ clojure -M:cljs release app db-worker inference-worker \
|
|
|
+ --config-merge '{:compiler-options {:source-map true :source-map-include-sources-content true :source-map-detail-level :symbols}}'
|
|
|
+ yarn webpack-app-build
|
|
|
+
|
|
|
+ rsync -avz \
|
|
|
+ --exclude node_modules \
|
|
|
+ --exclude android \
|
|
|
+ --exclude ios \
|
|
|
+ --exclude mobile \
|
|
|
+ ./static/ ./public/
|
|
|
+
|
|
|
+ mkdir -p r2
|
|
|
+ mv ./public/js/main.js.map ./r2/${{ inputs.branch }}.main.js.map
|
|
|
+
|
|
|
+ sed -i "s|=main.js.map|=https://assets.logseq.io/${{ inputs.branch }}.main.js.map|g" \
|
|
|
+ ./public/js/main.js
|
|
|
+ env:
|
|
|
+ LOGSEQ_SENTRY_DSN: ${{ secrets.LOGSEQ_SENTRY_DSN }}
|
|
|
+ LOGSEQ_POSTHOG_TOKEN: ${{ secrets.LOGSEQ_POSTHOG_TOKEN }}
|
|
|
+
|
|
|
+ - name: Upload sourcemaps to R2
|
|
|
+ uses: ryand56/r2-upload-action@latest
|
|
|
+ with:
|
|
|
+ r2-account-id: 2553ea8236c11ea0f88de28fce1cbfee
|
|
|
+ r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
|
|
|
+ r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
|
|
+ r2-bucket: ${{ secrets.R2_ASSETS_BUCKET }}
|
|
|
+ source-dir: r2
|
|
|
+ destination-dir: ./
|
|
|
+
|
|
|
+ - name: Publish to Cloudflare Pages
|
|
|
+ uses: cloudflare/pages-action@1
|
|
|
+ with:
|
|
|
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
|
+ accountId: 2553ea8236c11ea0f88de28fce1cbfee
|
|
|
+ projectName: "logseq-any-branch"
|
|
|
+ directory: "public"
|
|
|
+ gitHubToken: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ branch: ${{ inputs.branch }}
|