|
|
|
@ -1,5 +1,5 @@ |
|
|
|
|
import { Center, Code, Flex, Link, ListItem, Stack, Text, UnorderedList } from '@chakra-ui/react'; |
|
|
|
|
import type { NextPage } from 'next'; |
|
|
|
|
import type { GetServerSideProps, NextPage } from 'next'; |
|
|
|
|
import { useState } from 'react'; |
|
|
|
|
|
|
|
|
|
import { |
|
|
|
@ -11,17 +11,90 @@ import { |
|
|
|
|
import { DataTable } from '../components/UI'; |
|
|
|
|
|
|
|
|
|
import { |
|
|
|
|
ALL_GETH_COMMITS_URL, |
|
|
|
|
DEFAULT_BUILD_AMOUNT_TO_SHOW, |
|
|
|
|
DOWNLOAD_OPENPGP_BUILD_HEADERS, |
|
|
|
|
DOWNLOAD_OPENPGP_DEVELOPER_HEADERS, |
|
|
|
|
GETH_REPO_URL |
|
|
|
|
GETH_REPO_URL, |
|
|
|
|
LATEST_GETH_RELEASE_URL, |
|
|
|
|
LATEST_SOURCES_BASE_URL, |
|
|
|
|
LINUX_BINARY_BASE_URL, |
|
|
|
|
MACOS_BINARY_BASE_URL, |
|
|
|
|
RELEASE_NOTES_BASE_URL, |
|
|
|
|
WINDOWS_BINARY_BASE_URL |
|
|
|
|
} from '../constants'; |
|
|
|
|
|
|
|
|
|
import { testDownloadData } from '../data/test/download-testdata'; |
|
|
|
|
import { pgpBuildTestData } from '../data/test/pgpbuild-testdata'; |
|
|
|
|
import { pgpDeveloperTestData } from '../data/test/pgpdeveloper-testdata'; |
|
|
|
|
|
|
|
|
|
const DownloadsPage: NextPage = () => { |
|
|
|
|
export const getServerSideProps: GetServerSideProps = async () => { |
|
|
|
|
// Latest release name & version number
|
|
|
|
|
const { versionNumber, releaseName } = await fetch(LATEST_GETH_RELEASE_URL) |
|
|
|
|
.then(response => response.json()) |
|
|
|
|
.then(release => { |
|
|
|
|
return { |
|
|
|
|
versionNumber: release.tag_name, |
|
|
|
|
releaseName: release.name |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
// Latest release commit hash
|
|
|
|
|
const commit = await fetch(`${ALL_GETH_COMMITS_URL}/${versionNumber}`) |
|
|
|
|
.then(response => response.json()) |
|
|
|
|
.then(commit => commit.sha.slice(0, 8)); |
|
|
|
|
|
|
|
|
|
// Latest binaries urls
|
|
|
|
|
const LATEST_LINUX_BINARY_URL = `${LINUX_BINARY_BASE_URL}${versionNumber.slice( |
|
|
|
|
1 |
|
|
|
|
)}-${commit}.tar.gz`;
|
|
|
|
|
const LATEST_MACOS_BINARY_URL = `${MACOS_BINARY_BASE_URL}${versionNumber.slice( |
|
|
|
|
1 |
|
|
|
|
)}-${commit}.tar.gz`;
|
|
|
|
|
const LATEST_WINDOWS_BINARY_URL = `${WINDOWS_BINARY_BASE_URL}${versionNumber.slice( |
|
|
|
|
1 |
|
|
|
|
)}-${commit}.exe`;
|
|
|
|
|
|
|
|
|
|
// Sources urls
|
|
|
|
|
const LATEST_SOURCES_URL = `${LATEST_SOURCES_BASE_URL}${versionNumber}.tar.gz`; |
|
|
|
|
const RELEASE_NOTES_URL = `${RELEASE_NOTES_BASE_URL}${versionNumber}`; |
|
|
|
|
|
|
|
|
|
const LATEST_RELEASES_DATA = { |
|
|
|
|
versionNumber, |
|
|
|
|
releaseName, |
|
|
|
|
urls: { |
|
|
|
|
LATEST_LINUX_BINARY_URL, |
|
|
|
|
LATEST_MACOS_BINARY_URL, |
|
|
|
|
LATEST_WINDOWS_BINARY_URL, |
|
|
|
|
LATEST_SOURCES_URL, |
|
|
|
|
RELEASE_NOTES_URL |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
props: { |
|
|
|
|
data: { LATEST_RELEASES_DATA } |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
interface Props { |
|
|
|
|
data: { |
|
|
|
|
// TODO: define interfaces after adding the rest of the logic
|
|
|
|
|
LATEST_RELEASES_DATA: { |
|
|
|
|
versionNumber: string; |
|
|
|
|
releaseName: string; |
|
|
|
|
urls: { |
|
|
|
|
LATEST_LINUX_BINARY_URL: string; |
|
|
|
|
LATEST_MACOS_BINARY_URL: string; |
|
|
|
|
LATEST_WINDOWS_BINARY_URL: string; |
|
|
|
|
LATEST_SOURCES_URL: string; |
|
|
|
|
RELEASE_NOTES_URL: string; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const DownloadsPage: NextPage<Props> = ({ data }) => { |
|
|
|
|
const [amountStableReleases, updateAmountStables] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW); |
|
|
|
|
const [amountDevelopBuilds, updateAmountDevelopBuilds] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW); |
|
|
|
|
|
|
|
|
@ -33,27 +106,24 @@ const DownloadsPage: NextPage = () => { |
|
|
|
|
updateAmountDevelopBuilds(amountDevelopBuilds + 10); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const { |
|
|
|
|
LATEST_RELEASES_DATA: { releaseName, versionNumber, urls } |
|
|
|
|
} = data; |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
{/* TODO: add PageMetadata */} |
|
|
|
|
|
|
|
|
|
<main> |
|
|
|
|
<Stack spacing={4}> |
|
|
|
|
{/* TODO: replace hardcoded strings with build information */} |
|
|
|
|
<DownloadsHero |
|
|
|
|
currentBuildName={'Sentry Omega'} |
|
|
|
|
currentBuildVersion={'v1.10.23'} |
|
|
|
|
linuxBuildURL={ |
|
|
|
|
'https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.25-69568c55.tar.gz' |
|
|
|
|
} |
|
|
|
|
macOSBuildURL={ |
|
|
|
|
'https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.10.25-69568c55.tar.gz' |
|
|
|
|
} |
|
|
|
|
releaseNotesURL={''} |
|
|
|
|
sourceCodeURL={'https://github.com/ethereum/go-ethereum/archive/v1.10.25.tar.gz'} |
|
|
|
|
windowsBuildURL={ |
|
|
|
|
'https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.10.25-69568c55.exe' |
|
|
|
|
} |
|
|
|
|
currentBuild={releaseName} |
|
|
|
|
currentBuildVersion={versionNumber} |
|
|
|
|
linuxBuildURL={urls.LATEST_LINUX_BINARY_URL} |
|
|
|
|
macOSBuildURL={urls.LATEST_MACOS_BINARY_URL} |
|
|
|
|
windowsBuildURL={urls.LATEST_WINDOWS_BINARY_URL} |
|
|
|
|
sourceCodeURL={urls.LATEST_SOURCES_URL} |
|
|
|
|
releaseNotesURL={urls.RELEASE_NOTES_URL} |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
<SpecificVersionsSection> |
|
|
|
@ -177,7 +247,7 @@ const DownloadsPage: NextPage = () => { |
|
|
|
|
sx={{ mt: '0 !important' }} |
|
|
|
|
borderLeft={{ base: 'none', md: '2px solid #11866f' }} |
|
|
|
|
> |
|
|
|
|
<Link as='button' variant='button-link-secondary' onClick={showMoreStableReleases}> |
|
|
|
|
<Link as='button' variant='button-link-secondary' onClick={showMoreDevelopBuilds}> |
|
|
|
|
<Text |
|
|
|
|
fontFamily='"JetBrains Mono", monospace' |
|
|
|
|
fontWeight={700} |
|
|
|
|