From 144cb1734a40628ab3e33c1fbc1e31c684156a50 Mon Sep 17 00:00:00 2001 From: gitwoz <177856586+gitwoz@users.noreply.github.com> Date: Mon, 25 Nov 2024 16:20:27 +0700 Subject: [PATCH 01/13] fix(campaign): dedup participant list if total count is less than maxAvatarCount --- src/views/CampaignDetail/SideParticipants/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/CampaignDetail/SideParticipants/index.tsx b/src/views/CampaignDetail/SideParticipants/index.tsx index 5181248209..af0c3037ba 100644 --- a/src/views/CampaignDetail/SideParticipants/index.tsx +++ b/src/views/CampaignDetail/SideParticipants/index.tsx @@ -86,7 +86,7 @@ const SideParticipants = ({ campaign }: SideParticipantsProps) => { } if (edges.length <= maxAvatarCount) { - return edges + return edges.filter(({ node }) => node.id !== viewer.id) } const withAvatars = edges.filter( From dc209d02ac0750c57598a6acb43f28829e31c55a Mon Sep 17 00:00:00 2001 From: gitwoz <177856586+gitwoz@users.noreply.github.com> Date: Thu, 5 Dec 2024 09:17:52 +0700 Subject: [PATCH 02/13] feat(cli): run gen:type:prod for "release/*" --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d0c625f838..43c73ac174 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "prepare": "husky install", - "vercel-build": "set -xe; npm run gen:type && if [[ \"$NEXT_PUBLIC_VERCEL_GIT_COMMIT_REF\" =~ release/* ]] ; then cp -va .env.prod .env.local ; echo 'NEXT_PUBLIC_SITE_DOMAIN=web-next.matters.town' | tee -a .env.local; else cp -va .env.dev .env.local ; echo 'NEXT_PUBLIC_SITE_DOMAIN=web-dev.matters.town' | tee -a .env.local ; fi && { echo 'NEXT_PUBLIC_NEXT_ASSET_DOMAIN='; echo 'NEXT_PUBLIC_ADMIN_VIEW=true'; } | tee -a .env.local && npm run build", + "vercel-build": "set -xe; if [[ \"$NEXT_PUBLIC_VERCEL_GIT_COMMIT_REF\" =~ release/* ]] ; then npm run gen:type:prod && cp -va .env.prod .env.local ; echo 'NEXT_PUBLIC_SITE_DOMAIN=web-next.matters.town' | tee -a .env.local; else npm run gen:type && cp -va .env.dev .env.local ; echo 'NEXT_PUBLIC_SITE_DOMAIN=web-dev.matters.town' | tee -a .env.local ; fi && { echo 'NEXT_PUBLIC_NEXT_ASSET_DOMAIN='; echo 'NEXT_PUBLIC_ADMIN_VIEW=true'; } | tee -a .env.local && npm run build", "i18n:extract": "formatjs extract 'src/**/*.ts*' --ignore='**/*.d.ts' --id-interpolation-pattern '[sha512:contenthash:base64:6]' --out-file lang/default.json", "i18n:generate": "node bin/i18nGenerate.js", "i18n:compile": "formatjs compile-folder --ast lang compiled-lang", From 2debb09b48728b70a90fa369ebac1991e09cc1a2 Mon Sep 17 00:00:00 2001 From: gitwoz <177856586+gitwoz@users.noreply.github.com> Date: Tue, 10 Dec 2024 08:34:16 +0700 Subject: [PATCH 03/13] fix(tag): fix recommended tags query on editor since the permission changes --- .../RecommendedTags/index.tsx | 2 +- .../TagCustomStagingArea/SelectedTags/index.tsx | 2 +- .../Editor/TagCustomStagingArea/gql.ts | 4 ++-- .../Editor/TagCustomStagingArea/index.tsx | 17 ++++++----------- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/components/Editor/TagCustomStagingArea/RecommendedTags/index.tsx b/src/components/Editor/TagCustomStagingArea/RecommendedTags/index.tsx index 9330743df0..cac5fe7747 100644 --- a/src/components/Editor/TagCustomStagingArea/RecommendedTags/index.tsx +++ b/src/components/Editor/TagCustomStagingArea/RecommendedTags/index.tsx @@ -7,7 +7,7 @@ import { EditorRecommendedTagsQuery } from '~/gql/graphql' import styles from './styles.module.css' type EditorRecommendedTagsUserTagsEdgesNode = NonNullable< - NonNullable['tags']['edges'] + NonNullable['tags']['edges'] >[0]['node'] & { __typename: 'Tag' } type RecommendedTagsProps = { diff --git a/src/components/Editor/TagCustomStagingArea/SelectedTags/index.tsx b/src/components/Editor/TagCustomStagingArea/SelectedTags/index.tsx index bcbe940121..5a90ddeee3 100644 --- a/src/components/Editor/TagCustomStagingArea/SelectedTags/index.tsx +++ b/src/components/Editor/TagCustomStagingArea/SelectedTags/index.tsx @@ -5,7 +5,7 @@ import { EditorRecommendedTagsQuery } from '~/gql/graphql' import styles from './styles.module.css' type EditorRecommendedTagsUserTagsEdgesNode = NonNullable< - NonNullable['tags']['edges'] + NonNullable['tags']['edges'] >[0]['node'] & { __typename: 'Tag' } type SelectedTagsProps = { diff --git a/src/components/Editor/TagCustomStagingArea/gql.ts b/src/components/Editor/TagCustomStagingArea/gql.ts index fcdcdb5079..a16ce12cc4 100644 --- a/src/components/Editor/TagCustomStagingArea/gql.ts +++ b/src/components/Editor/TagCustomStagingArea/gql.ts @@ -3,8 +3,8 @@ import gql from 'graphql-tag' import { ListTag } from '~/components/Tag' export const EDITOR_RECOMMENDED_TAGS = gql` - query EditorRecommendedTags($userName: String!) { - user(input: { userName: $userName }) { + query EditorRecommendedTags { + viewer { id tags(input: { first: 10 }) { edges { diff --git a/src/components/Editor/TagCustomStagingArea/index.tsx b/src/components/Editor/TagCustomStagingArea/index.tsx index 15b8d91a78..4d5d301e2b 100644 --- a/src/components/Editor/TagCustomStagingArea/index.tsx +++ b/src/components/Editor/TagCustomStagingArea/index.tsx @@ -1,8 +1,8 @@ +import { useQuery } from '@apollo/react-hooks' import _uniqBy from 'lodash/uniqBy' -import { useContext } from 'react' import { MAX_ARTICLE_TAG_LENGTH } from '~/common/enums' -import { SpinnerBlock, usePublicQuery, ViewerContext } from '~/components' +import { SpinnerBlock } from '~/components' import { SelectTag } from '~/components/SearchSelect/SearchingArea' import { CustomStagingAreaProps } from '~/components/SearchSelect/StagingArea' import { EditorRecommendedTagsQuery } from '~/gql/graphql' @@ -14,7 +14,7 @@ import styles from './styles.module.css' type EditorRecommendedTagsUserTagsEdgesNode = Required< NonNullable< - NonNullable['tags']['edges'] + NonNullable['tags']['edges'] >[0]['node'] > @@ -24,21 +24,16 @@ const TagCustomStagingArea = ({ hint, toStagingArea, }: CustomStagingAreaProps) => { - const viewer = useContext(ViewerContext) - /** * Data Fetching */ // public data - const { data, loading } = usePublicQuery( - EDITOR_RECOMMENDED_TAGS, - { - variables: { userName: viewer.userName }, - } + const { data, loading } = useQuery( + EDITOR_RECOMMENDED_TAGS ) // recommended tags - const userTagsEdges = data?.user?.tags.edges || [] + const userTagsEdges = data?.viewer?.tags.edges || [] let recommendedTags = [...userTagsEdges]?.map((edge) => edge.node) // remove duplicated tags From 9de2666f0847df453d63f9d4042da4630e85c92e Mon Sep 17 00:00:00 2001 From: Kechicode <186776112+Kechicode@users.noreply.github.com> Date: Tue, 10 Dec 2024 14:54:35 +0800 Subject: [PATCH 04/13] fix(Editor): show campaign section only when campaigns exist ref: PD-2412-1-6 --- src/components/Editor/BottomBar/MobileSettingsDialog/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Editor/BottomBar/MobileSettingsDialog/index.tsx b/src/components/Editor/BottomBar/MobileSettingsDialog/index.tsx index 5b9b9918d1..4ee68a118a 100644 --- a/src/components/Editor/BottomBar/MobileSettingsDialog/index.tsx +++ b/src/components/Editor/BottomBar/MobileSettingsDialog/index.tsx @@ -63,7 +63,7 @@ const BaseMobileSettingsDialog = ({ {/* campaign */} - {campaigns && selectedCampaign && editCampaign && ( + {campaigns && campaigns.length > 0 && editCampaign && (

Date: Tue, 10 Dec 2024 15:47:23 +0800 Subject: [PATCH 05/13] fix(ArticleDetail): Simplify campaign state initialization in useCampaignState hook PD-2412-1-4 --- src/views/ArticleDetail/Edit/Hooks/useCampaignState.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/ArticleDetail/Edit/Hooks/useCampaignState.ts b/src/views/ArticleDetail/Edit/Hooks/useCampaignState.ts index 5fa16c298d..f117621365 100644 --- a/src/views/ArticleDetail/Edit/Hooks/useCampaignState.ts +++ b/src/views/ArticleDetail/Edit/Hooks/useCampaignState.ts @@ -22,7 +22,7 @@ export const useCampaignState = (article: Article) => { }) const [campaign, setCampaign] = useState( - initialSelectedCampaign?.id && initialSelectedStage + initialSelectedCampaign?.id ? { campaign: initialSelectedCampaign.id, stage: initialSelectedStage, From f0ecca6b9b814f43e17d4edc61cbf14b2c59554c Mon Sep 17 00:00:00 2001 From: Zeck Li <11781254+zeckli@users.noreply.github.com> Date: Tue, 10 Dec 2024 22:02:39 +0800 Subject: [PATCH 06/13] fix(tracker): fix read timer does not work if user bounces immediately --- src/components/Hook/useReadTimer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Hook/useReadTimer.ts b/src/components/Hook/useReadTimer.ts index 67cfd0389a..02f4a3efb2 100644 --- a/src/components/Hook/useReadTimer.ts +++ b/src/components/Hook/useReadTimer.ts @@ -25,7 +25,7 @@ export const useReadTimer = ({ articleId, container }: Props) => { }, 3000) const storeReadTime = () => { - if (articleId && readTimer?.current) + if (articleId && readTimer) analytics.trackEvent('read_time', { articleId, time: readTimer.current, From 8b80d28ce42a27f3b2004491d14afb2fd16e662b Mon Sep 17 00:00:00 2001 From: gitwoz <177856586+gitwoz@users.noreply.github.com> Date: Wed, 11 Dec 2024 09:52:12 +0700 Subject: [PATCH 07/13] fix(campaign): correct article label for non-announcement --- .../ArticleFeeds/MainFeed/gql.ts | 1 + .../ArticleFeeds/MainFeed/index.tsx | 22 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/views/CampaignDetail/ArticleFeeds/MainFeed/gql.ts b/src/views/CampaignDetail/ArticleFeeds/MainFeed/gql.ts index 7a6508b378..0b87aa36af 100644 --- a/src/views/CampaignDetail/ArticleFeeds/MainFeed/gql.ts +++ b/src/views/CampaignDetail/ArticleFeeds/MainFeed/gql.ts @@ -21,6 +21,7 @@ export const CAMPAIGN_ARTICLES_PUBLIC = gql` edges { cursor featured + announcement node { id campaigns { diff --git a/src/views/CampaignDetail/ArticleFeeds/MainFeed/index.tsx b/src/views/CampaignDetail/ArticleFeeds/MainFeed/index.tsx index 148a6de4f2..30185f0b7e 100644 --- a/src/views/CampaignDetail/ArticleFeeds/MainFeed/index.tsx +++ b/src/views/CampaignDetail/ArticleFeeds/MainFeed/index.tsx @@ -49,17 +49,21 @@ const getArticleStage = (article: CampaignArticlesPublicQueryArticle) => { return stage } -const getArticleStageName = ( +const getLabel = ( article: CampaignArticlesPublicQueryArticle, - lang: string + lang: string, + announcement: boolean ) => { const stage = getArticleStage(article) - // announcement if nullish - if (!stage) { + if (announcement) { return } + if (!stage) { + return '' + } + return stage[ `name${lang === 'en' ? 'En' : lang === 'zh-Hans' ? 'ZhHans' : 'ZhHant'}` ] @@ -218,20 +222,22 @@ const MainFeed = ({ feedType, camapign }: MainFeedProps) => { return ( - {edges.map(({ node, featured }, i) => ( + {edges.map(({ node, featured, announcement }, i) => ( - {(isAll || isFeatured) && ( + {(isAll || + isFeatured || + getLabel(node, lang, announcement)) && ( - {getArticleStageName(node, lang)} + {getLabel(node, lang, announcement)} )} {!isFeatured && featured && } From 4776b16cd941b850eb2b7f0a031c3955b1cf7e3c Mon Sep 17 00:00:00 2001 From: Kechicode <186776112+Kechicode@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:40:22 +0800 Subject: [PATCH 08/13] fix(ArticleDetail): Add announcement flag to campaign detail routing --- src/common/utils/route.ts | 3 ++- src/views/ArticleDetail/Header/gql.ts | 3 +++ src/views/ArticleDetail/Header/index.tsx | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/common/utils/route.ts b/src/common/utils/route.ts index e55ae0d234..d815ab0930 100644 --- a/src/common/utils/route.ts +++ b/src/common/utils/route.ts @@ -94,6 +94,7 @@ type ToPathArgs = campaign: CampaignArgs stage?: CampaignStageArgs featured?: boolean + announcement?: boolean } | { page: 'userProfile' | 'userCollections' @@ -247,7 +248,7 @@ export const toPath = ( href = `${href}?type=${args.stage.id}` } else if (args.featured) { href = `${href}?type=featured` - } else { + } else if (args.announcement) { href = `${href}?type=announcement` } break diff --git a/src/views/ArticleDetail/Header/gql.ts b/src/views/ArticleDetail/Header/gql.ts index 1bbed3ca0c..ab30f43887 100644 --- a/src/views/ArticleDetail/Header/gql.ts +++ b/src/views/ArticleDetail/Header/gql.ts @@ -13,6 +13,9 @@ export const fragments = { nameZhHant: name(input: { language: zh_hant }) nameZhHans: name(input: { language: zh_hans }) nameEn: name(input: { language: en }) + announcements { + id + } } } stage { diff --git a/src/views/ArticleDetail/Header/index.tsx b/src/views/ArticleDetail/Header/index.tsx index 47d1077a00..fec515b8b7 100644 --- a/src/views/ArticleDetail/Header/index.tsx +++ b/src/views/ArticleDetail/Header/index.tsx @@ -22,6 +22,9 @@ const Header = ({ article }: HeaderProps) => { const campaign = article.campaigns[0]?.campaign const campaignStage = article.campaigns[0]?.stage const { lang } = useContext(LanguageContext) + const isAnnouncement = article.campaigns[0]?.campaign?.announcements?.some( + (announcement: { id: string }) => announcement.id === article.id + ) return (
@@ -36,6 +39,7 @@ const Header = ({ article }: HeaderProps) => { page: 'campaignDetail', campaign, stage: campaignStage || undefined, + announcement: isAnnouncement, }).href } onClick={() => { From 43fc2d5ebb9d4e9f8a3de2247712c3277b33907a Mon Sep 17 00:00:00 2001 From: Kechicode <186776112+Kechicode@users.noreply.github.com> Date: Thu, 12 Dec 2024 10:04:29 +0800 Subject: [PATCH 09/13] fix(lang): fix copy --- lang/zh-Hans.json | 2 +- lang/zh-Hant.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/zh-Hans.json b/lang/zh-Hans.json index 377a667420..011fb4c6cf 100644 --- a/lang/zh-Hans.json +++ b/lang/zh-Hans.json @@ -2754,7 +2754,7 @@ "description": "src/components/Forms/CreateCircleForm/Profile.tsx" }, "m1wKuC": { - "defaultMessage": "参与七日书活动" + "defaultMessage": "参与活动" }, "m4GG4b": { "defaultMessage": "删除选集" diff --git a/lang/zh-Hant.json b/lang/zh-Hant.json index d08e228708..3fc2c247c0 100644 --- a/lang/zh-Hant.json +++ b/lang/zh-Hant.json @@ -2754,7 +2754,7 @@ "description": "src/components/Forms/CreateCircleForm/Profile.tsx" }, "m1wKuC": { - "defaultMessage": "參與七日書活動" + "defaultMessage": "參與活動" }, "m4GG4b": { "defaultMessage": "刪除選集" From f21270781c41824ee7652cbde7a0db6bb29cf8f4 Mon Sep 17 00:00:00 2001 From: Kechicode <186776112+Kechicode@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:13:22 +0800 Subject: [PATCH 10/13] fix(CampaignDetail): handle campaigns without end date in apply button CC-2412-2-3 --- src/views/CampaignDetail/Apply/Button/index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/CampaignDetail/Apply/Button/index.tsx b/src/views/CampaignDetail/Apply/Button/index.tsx index cc52edcbe9..b811fceba5 100644 --- a/src/views/CampaignDetail/Apply/Button/index.tsx +++ b/src/views/CampaignDetail/Apply/Button/index.tsx @@ -34,7 +34,8 @@ const ApplyCampaignButton = ({ const isRejected = applicationState === 'rejected' const isNotApplied = !applicationState const isAppliedDuringPeriod = - appliedAt && new Date(appliedAt) <= new Date(appEnd) + (appliedAt && appEnd && new Date(appliedAt) <= new Date(appEnd)) || + (appliedAt && !appEnd) const isApplicationStarted = now >= new Date(appStart) const isActiveCampaign = campaign.state === 'active' From 705ee134832b1ee4fb7bc634748ae53073b85bad Mon Sep 17 00:00:00 2001 From: Woz <177856586+gitwoz@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:56:51 +0800 Subject: [PATCH 11/13] chore(release): v5.7.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 43c73ac174..ecf206f0ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matters-web", - "version": "5.7.0", + "version": "5.7.1", "description": "codebase of Matters' website", "author": "Matters ", "engines": { From 3d6fc270a74b1ac7c05c64463d4f9c54b1780389 Mon Sep 17 00:00:00 2001 From: gitwoz <177856586+gitwoz@users.noreply.github.com> Date: Thu, 12 Dec 2024 22:54:07 +0700 Subject: [PATCH 12/13] fix(ci): fix rclone --- .github/workflows/deploy.yml | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cc19547337..743c4a1c8f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -82,17 +82,21 @@ jobs: && npm install --production \ && zip -r --symlinks deploy.zip . -x .git/\* + - name: Setup rclone + if: github.base_ref == 'develop' || github.base_ref == 'master' + uses: AnimMouse/setup-rclone@v1 + with: + rclone_config: | + [r2] + type = s3 + provider = Cloudflare + access_key_id = ${{ secrets.RCLONE_CONFIG_R2_ACCESS_KEY_ID }} + secret_access_key = ${{ secrets.RCLONE_CONFIG_R2_SECRET_ACCESS_KEY }} + endpoint = ${{ secrets.RCLONE_CONFIG_R2_ENDPOINT }} + - name: Upload Assets (develop - R2) if: github.base_ref == 'develop' - uses: andreiio/rclone-action@v1 - env: - RCLONE_CONFIG_R2_TYPE: s3 - RCLONE_CONFIG_R2_PROVIDER: Cloudflare - RCLONE_CONFIG_R2_ACCESS_KEY_ID: ${{ secrets.RCLONE_CONFIG_R2_ACCESS_KEY_ID }} - RCLONE_CONFIG_R2_SECRET_ACCESS_KEY: ${{ secrets.RCLONE_CONFIG_R2_SECRET_ACCESS_KEY }} - RCLONE_CONFIG_R2_ENDPOINT: ${{ secrets.RCLONE_CONFIG_R2_ENDPOINT }} - with: - args: sync .next/static r2:matters-assets-next-develop/_next/static -P + run: rclone sync .next/static r2:matters-assets-next-develop/_next/static -P - name: Deploy to EB (develop) if: github.base_ref == 'develop' @@ -111,15 +115,7 @@ jobs: - name: Upload Assets (production - R2) if: github.base_ref == 'master' - uses: andreiio/rclone-action@v1 - env: - RCLONE_CONFIG_R2_TYPE: s3 - RCLONE_CONFIG_R2_PROVIDER: Cloudflare - RCLONE_CONFIG_R2_ACCESS_KEY_ID: ${{ secrets.RCLONE_CONFIG_R2_ACCESS_KEY_ID }} - RCLONE_CONFIG_R2_SECRET_ACCESS_KEY: ${{ secrets.RCLONE_CONFIG_R2_SECRET_ACCESS_KEY }} - RCLONE_CONFIG_R2_ENDPOINT: ${{ secrets.RCLONE_CONFIG_R2_ENDPOINT }} - with: - args: sync .next/static r2:matters-assets-next/_next/static -P + run: rclone sync .next/static r2:matters-assets-next/_next/static -P - name: Deploy to EB (production) if: github.base_ref == 'master' From 3042dcbd5b22a847ffea6b5d1f848b6229e8754a Mon Sep 17 00:00:00 2001 From: gitwoz <177856586+gitwoz@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:12:10 +0700 Subject: [PATCH 13/13] fix(ci): disable base64 to use plain text config --- .github/workflows/deploy.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 743c4a1c8f..166af165bb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -31,6 +31,19 @@ jobs: node-version: '18' cache: 'npm' + - name: Setup rclone + if: github.base_ref == 'develop' || github.base_ref == 'master' + uses: AnimMouse/setup-rclone@v1 + with: + rclone_config: | + [r2] + type = s3 + provider = Cloudflare + access_key_id = ${{ secrets.RCLONE_CONFIG_R2_ACCESS_KEY_ID }} + secret_access_key = ${{ secrets.RCLONE_CONFIG_R2_SECRET_ACCESS_KEY }} + endpoint = ${{ secrets.RCLONE_CONFIG_R2_ENDPOINT }} + disable_base64: true + - name: Install Dependencies run: npm ci @@ -82,18 +95,6 @@ jobs: && npm install --production \ && zip -r --symlinks deploy.zip . -x .git/\* - - name: Setup rclone - if: github.base_ref == 'develop' || github.base_ref == 'master' - uses: AnimMouse/setup-rclone@v1 - with: - rclone_config: | - [r2] - type = s3 - provider = Cloudflare - access_key_id = ${{ secrets.RCLONE_CONFIG_R2_ACCESS_KEY_ID }} - secret_access_key = ${{ secrets.RCLONE_CONFIG_R2_SECRET_ACCESS_KEY }} - endpoint = ${{ secrets.RCLONE_CONFIG_R2_ENDPOINT }} - - name: Upload Assets (develop - R2) if: github.base_ref == 'develop' run: rclone sync .next/static r2:matters-assets-next-develop/_next/static -P