-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Horacio Herrera <[email protected]>
- Loading branch information
1 parent
515b447
commit 6681a57
Showing
21 changed files
with
3,319 additions
and
1,242 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
name: Desktop dev release | ||
|
||
permissions: | ||
contents: write | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- main | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
AWS_REGION: us-east-1 | ||
|
||
jobs: | ||
build-info: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
version: ${{ steps.set_version.outputs.version }} | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set Version | ||
id: set_version | ||
run: | | ||
node scripts/generate-dev-version.mjs --debug | ||
VERSION=$(node scripts/generate-dev-version.mjs) | ||
echo "version=$VERSION" >> $GITHUB_OUTPUT | ||
- name: Display Version | ||
run: | | ||
echo "App Version: ${{ steps.set_version.outputs.version }}" | ||
frontend-tests: | ||
runs-on: ubuntu-latest | ||
needs: [build-info] | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Install dependencies | ||
run: yarn install | ||
- name: Run tests | ||
run: yarn test | ||
|
||
build-binaries: | ||
name: Build ${{ matrix.config.os }} @ ${{ matrix.config.arch }} | ||
runs-on: ${{ matrix.config.os }} | ||
# if: startsWith(github.ref, 'refs/tags/') | ||
needs: [build-info, frontend-tests] | ||
strategy: | ||
matrix: | ||
config: | ||
- os: macos-13-large | ||
arch: x64 | ||
goarch: amd64 | ||
daemon_name: x86_64-apple-darwin | ||
- os: macos-13-xlarge | ||
arch: arm64 | ||
goarch: arm64 | ||
daemon_name: aarch64-apple-darwin | ||
- os: ubuntu-latest | ||
arch: x64 | ||
goarch: amd64 | ||
daemon_name: x86_64-unknown-linux-gnu | ||
- os: windows-latest | ||
arch: x64 | ||
goarch: amd64 | ||
daemon_name: x86_64-pc-windows-msvc | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- uses: ./.github/actions/ci-setup | ||
with: | ||
matrix-os: ${{ matrix.config.os }} | ||
# matrix-target: ${{ matrix.config.daemon_name }} | ||
# matrix-arch: ${{ matrix.config.arch }} | ||
|
||
- name: Build Backend (Unix) | ||
if: matrix.config.os != 'windows-latest' | ||
run: | | ||
mkdir -p plz-out/bin/backend | ||
go build -o plz-out/bin/backend/seed-daemon-${{ matrix.config.daemon_name }} ./backend/cmd/seed-daemon | ||
env: | ||
GOARCH: ${{ matrix.config.goarch }} | ||
CGO_ENABLED: 1 | ||
|
||
- name: Build Backend (Windows) | ||
if: matrix.config.os == 'windows-latest' | ||
run: | | ||
mkdir -p plz-out/bin/backend | ||
go build -o plz-out/bin/backend/seed-daemon-${{ matrix.config.daemon_name }}.exe ./backend/cmd/seed-daemon | ||
env: | ||
GOOS: "windows" | ||
GOARCH: ${{ matrix.config.goarch }} | ||
CGO_ENABLED: 1 | ||
|
||
- name: Set MacOS signing certs | ||
if: startsWith(matrix.config.os, 'macos') | ||
env: | ||
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE_BASE64 }} | ||
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | ||
APPLE_KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} | ||
run: | | ||
echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12 | ||
security create-keychain -p $APPLE_KEYCHAIN_PASSWORD build.keychain | ||
security default-keychain -s build.keychain | ||
security unlock-keychain -p $APPLE_KEYCHAIN_PASSWORD build.keychain | ||
security import certificate.p12 -k build.keychain -P $APPLE_CERTIFICATE_PASSWORD -T /usr/bin/codesign | ||
security set-key-partition-list -S apple-tool:,apple: -s -k $APPLE_KEYCHAIN_PASSWORD build.keychain | ||
rm -fr *.p12 | ||
security set-keychain-settings -lut 1200 # prevent the keychain to get locked before codesign is done | ||
- name: Set temporal version in package.json | ||
run: | | ||
node scripts/set-desktop-version.mjs | ||
env: | ||
VITE_VERSION: "${{ needs.build-info.outputs.version }}" | ||
- name: Build, package & make (Unix) | ||
if: matrix.config.os != 'windows-latest' | ||
run: | | ||
yarn desktop:publish --arch=${{ matrix.config.arch }} | ||
env: | ||
timeout-minutes: 10 | ||
NODE_OPTIONS: --max_old_space_size=4096 | ||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | ||
DAEMON_NAME: ${{ matrix.config.daemon_name }} | ||
VITE_VERSION: "${{ needs.build-info.outputs.version }}" | ||
VITE_COMMIT_HASH: "${{ github.sha }}" | ||
VITE_DESKTOP_P2P_PORT: "57000" | ||
VITE_DESKTOP_HTTP_PORT: "57001" | ||
VITE_DESKTOP_GRPC_PORT: "57002" | ||
VITE_DESKTOP_APPDATA: "Seed-dev" | ||
VITE_DESKTOP_HOSTNAME: "http://localhost" | ||
VITE_LIGHTNING_API_URL: "https://ln.testnet.seed.hyper.media" | ||
VITE_GATEWAY_URL: "https://dev.hyper.media" | ||
VITE_DESKTOP_SENTRY_DSN: "${{ secrets.DESKTOP_SENTRY_DSN }}" | ||
SENTRY_AUTH_TOKEN: "${{ secrets.SENTRY_AUTH_TOKEN }}" | ||
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} | ||
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} | ||
APPLE_ID: ${{ secrets.APPLE_ID }} | ||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | ||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | ||
SEED_P2P_TESTNET_NAME: "dev" | ||
|
||
- name: Build, package and make (Win32) | ||
if: startsWith(matrix.config.os, 'windows') | ||
run: | | ||
yarn desktop:publish --arch=${{ matrix.config.arch }} | ||
env: | ||
timeout-minutes: 10 | ||
NODE_OPTIONS: --max_old_space_size=4096 | ||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | ||
DAEMON_NAME: "${{ matrix.config.daemon_name }}.exe" | ||
VITE_VERSION: "${{ needs.build-info.outputs.version }}" | ||
VITE_COMMIT_HASH: "${{ github.sha }}" | ||
VITE_DESKTOP_P2P_PORT: "57000" | ||
VITE_DESKTOP_HTTP_PORT: "57001" | ||
VITE_DESKTOP_GRPC_PORT: "57002" | ||
VITE_DESKTOP_APPDATA: "Seed-dev" | ||
VITE_DESKTOP_HOSTNAME: "http://localhost" | ||
VITE_LIGHTNING_API_URL: "https://ln.seed.hyper.media" | ||
VITE_GATEWAY_URL: "https://dev.hyper.media" | ||
VITE_DESKTOP_SENTRY_DSN: "${{ secrets.DESKTOP_SENTRY_DSN }}" | ||
SENTRY_AUTH_TOKEN: "${{ secrets.SENTRY_AUTH_TOKEN }}" | ||
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} | ||
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} | ||
SEED_P2P_TESTNET_NAME: "dev" | ||
|
||
- name: Upload Artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: artifacts-${{ matrix.config.daemon_name }} | ||
path: frontend/apps/desktop/out/make/**/* | ||
|
||
notify-on-discord: | ||
needs: [build-info, build-binaries] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Download artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
path: artifacts | ||
|
||
# Step 3: Generate artifact URLs and send to Discord | ||
- name: Send Discord Notification | ||
env: | ||
GITHUB_REPOSITORY: ${{ github.repository }} | ||
GITHUB_RUN_ID: ${{ github.run_id }} | ||
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} | ||
VERSION: ${{ needs.build-info.outputs.version }} | ||
run: | | ||
# Debug: List all files in artifacts directory | ||
echo "Listing all files in artifacts directory:" | ||
find artifacts -type f -ls | ||
# Get the GitHub Action Run URL base | ||
BASE_URL="https://seedappdev.s3.eu-west-2.amazonaws.com/dev/latest" | ||
# List all artifacts and construct URLs | ||
MESSAGE="**New dev version: ${VERSION}**" | ||
for file in $(find artifacts -type f); do | ||
FILE_NAME=$(basename "$file") | ||
ARTIFACT_URL="${BASE_URL}/${FILE_NAME}" | ||
MESSAGE="${MESSAGE}\n - [${FILE_NAME}](${ARTIFACT_URL})" | ||
done | ||
# Send the message to Discord | ||
echo "Sending Discord Notification..." | ||
PAYLOAD=$(printf '{"content": "%s"}' "$MESSAGE") | ||
curl -X POST -H "Content-Type: application/json" -d "$PAYLOAD" "$DISCORD_WEBHOOK_URL" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.