remove .github
This commit is contained in:
parent
b1e4b648ee
commit
c1151607ac
11 changed files with 0 additions and 1589 deletions
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
|
|
@ -1,2 +0,0 @@
|
|||
github: hoppscotch
|
||||
open_collective: hoppscotch
|
||||
117
.github/ISSUE_TEMPLATE/--bug-report.yaml
vendored
117
.github/ISSUE_TEMPLATE/--bug-report.yaml
vendored
|
|
@ -1,117 +0,0 @@
|
|||
name: Bug Report
|
||||
description: Create a bug report to help us improve Hoppscotch
|
||||
title: "[bug]: "
|
||||
labels: [bug, need testing]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for taking the time to report this issue. Complete information helps us resolve it faster.
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
description: Please search to see if an issue already exists for the bug you encountered
|
||||
options:
|
||||
- label: I have searched existing issues and this bug hasn't been reported yet
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: platform
|
||||
attributes:
|
||||
label: Platform
|
||||
description: How are you accessing Hoppscotch?
|
||||
options:
|
||||
- Web App
|
||||
- Desktop App
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: browser
|
||||
attributes:
|
||||
label: Browser
|
||||
description: |
|
||||
Which browser is affected?
|
||||
- For web app: Select the browser you're using
|
||||
- For desktop app: Select your default browser
|
||||
options:
|
||||
- Chrome
|
||||
- Firefox
|
||||
- Safari
|
||||
- Edge
|
||||
- Opera
|
||||
- Other (specify in additional info)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: Which operating system are you using?
|
||||
options:
|
||||
- Windows
|
||||
- macOS
|
||||
- Linux
|
||||
- Other (specify in additional info)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Bug Description
|
||||
description: |
|
||||
Describe the bug, how to reproduce it, and any additional context that would help us fix it. Include screenshots when possible.
|
||||
|
||||
**For request-related issues:** Please specify which interceptor you're using (Browser, Agent, Extension, Proxy, Native, etc.)
|
||||
placeholder: |
|
||||
## What happened?
|
||||
When I do <X>, <Y> happens and I see the error:
|
||||
```
|
||||
[paste error message here]
|
||||
```
|
||||
What I expected is <Z>
|
||||
|
||||
## Steps to reproduce
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. See error
|
||||
|
||||
## Screenshots
|
||||
[Attach screenshots here if available - they're really helpful!]
|
||||
|
||||
## Additional context
|
||||
Interceptor used (if request-related): [Browser/Agent/Extension/Proxy/Native/etc.]
|
||||
|
||||
## Logs and Console Output (if available)
|
||||
```
|
||||
Paste any relevant logs here
|
||||
```
|
||||
|
||||
## Additional details (if relevant)
|
||||
- Device specifics:
|
||||
- Special configurations:
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: deployment
|
||||
attributes:
|
||||
label: Deployment Type
|
||||
description: What type of Hoppscotch deployment are you using?
|
||||
options:
|
||||
- Hoppscotch Cloud
|
||||
- Self-hosted (on-prem deployment)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: |
|
||||
For Self-Hosted deployments: Specify your deployment version
|
||||
For Desktop App: Specify your app version
|
||||
validations:
|
||||
required: false
|
||||
28
.github/ISSUE_TEMPLATE/--feature-request.yaml
vendored
28
.github/ISSUE_TEMPLATE/--feature-request.yaml
vendored
|
|
@ -1,28 +0,0 @@
|
|||
name: Feature request
|
||||
description: Suggest a feature to improve Hoppscotch
|
||||
title: "[feature]: "
|
||||
labels: [feature]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for taking the time to request a feature for Hoppscotch
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
description: Please search to see if an issue related to this feature request already exists
|
||||
options:
|
||||
- label: I have searched the existing issues
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: One paragraph description of the feature
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Why should this be worked on?
|
||||
description: A concise description of the problems or use cases for this feature request
|
||||
validations:
|
||||
required: true
|
||||
7
.github/ISSUE_TEMPLATE/config.yml
vendored
7
.github/ISSUE_TEMPLATE/config.yml
vendored
|
|
@ -1,7 +0,0 @@
|
|||
contact_links:
|
||||
- name: Help and support
|
||||
url: https://github.com/hoppscotch/hoppscotch#support
|
||||
about: Reach out to us on our Discord server or Telegram group or GitHub discussions.
|
||||
- name: Dedicated support
|
||||
url: mailto:support@hoppscotch.io
|
||||
about: Write to us if you'd like dedicated support using Hoppscotch
|
||||
10
.github/dependabot.yml
vendored
10
.github/dependabot.yml
vendored
|
|
@ -1,10 +0,0 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
time: '00:00'
|
||||
open-pull-requests-limit: 0
|
||||
reviewers:
|
||||
- liyasthomas
|
||||
21
.github/pull_request_template.md
vendored
21
.github/pull_request_template.md
vendored
|
|
@ -1,21 +0,0 @@
|
|||
<!--
|
||||
Thanks for creating this pull request 🤗
|
||||
|
||||
Please make sure that the pull request is limited to one type (docs, feature, etc.) and keep it as small as possible. You can open multiple prs instead of opening a huge one.
|
||||
-->
|
||||
|
||||
<!-- If this pull request closes an issue, please mention the issue number below -->
|
||||
Closes # <!-- Issue # here -->
|
||||
|
||||
<!-- Add an introduction into what this PR tries to solve in a couple of sentences -->
|
||||
|
||||
### What's changed
|
||||
<!-- Describe point by point the different things you have changed in this PR -->
|
||||
|
||||
<!-- You can also choose to add a list of changes and if they have been completed or not by using the markdown to-do list syntax
|
||||
- [ ] Not Completed
|
||||
- [x] Completed
|
||||
-->
|
||||
|
||||
### Notes to reviewers
|
||||
<!-- Any information you feel the reviewer should know about when reviewing your PR -->
|
||||
5
.github/semantic.yml
vendored
5
.github/semantic.yml
vendored
|
|
@ -1,5 +0,0 @@
|
|||
# Always validate the PR title AND all the commits
|
||||
titleAndCommits: true
|
||||
# Allows use of Merge commits (eg on github: "Merge branch 'master' into feature/ride-unicorns")
|
||||
# this is only relevant when using commitsOnly: true (or titleAndCommits: true)
|
||||
allowMergeCommits: true
|
||||
670
.github/workflows/build-hoppscotch-agent.yml
vendored
670
.github/workflows/build-hoppscotch-agent.yml
vendored
|
|
@ -1,670 +0,0 @@
|
|||
name: Build Agent Self Host - AIO
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: Tag of the version to build
|
||||
required: true
|
||||
branch:
|
||||
description: Branch to checkout
|
||||
required: true
|
||||
default: "main"
|
||||
release_notes:
|
||||
description: Release notes for the update
|
||||
required: false
|
||||
default: "PLACEHOLDER RELEASE NOTES"
|
||||
build_macos_x64:
|
||||
description: Build for macOS x64
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_macos_arm64:
|
||||
description: Build for macOS ARM64
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_linux_deb:
|
||||
description: Build Linux DEB package
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_linux_appimage:
|
||||
description: Build Linux AppImage
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_windows_installer:
|
||||
description: Build Windows MSI installer
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_windows_portable:
|
||||
description: Build Windows portable executable
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
jobs:
|
||||
build-macos-x86_64:
|
||||
name: Build MacOS x86_64 (.dmg)
|
||||
runs-on: macos-latest
|
||||
if: ${{ inputs.build_macos_x64 }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout hoppscotch/hoppscotch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: hoppscotch/hoppscotch
|
||||
ref: ${{ inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: Install Rust target
|
||||
timeout-minutes: 5
|
||||
run: rustup target add x86_64-apple-darwin
|
||||
- name: Install additional tools
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
mkdir __dist/
|
||||
cd __dist/
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.0.1/cargo-tauri-x86_64-apple-darwin.zip"
|
||||
unzip cargo-tauri-x86_64-apple-darwin.zip
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
- name: Import Code-Signing Certificates
|
||||
uses: apple-actions/import-codesign-certs@v3
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE }}
|
||||
p12-password: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE_PASSWORD }}
|
||||
keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
- name: Cache Rust dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-x86-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Install dependencies
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm install --filter hoppscotch-agent
|
||||
- name: Build Tauri app
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.AGENT_TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.AGENT_TAURI_SIGNING_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.HOPPSCOTCH_APPLE_ID }}
|
||||
APPLE_PASSWORD: ${{ secrets.HOPPSCOTCH_APPLE_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.HOPPSCOTCH_APPLE_TEAM_ID }}
|
||||
APPLE_SIGNING_IDENTITY: ${{ secrets.HOPPSCOTCH_APPLE_SIGNING_IDENTITY }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
echo "Starting x86_64 build..."
|
||||
pnpm tauri build --verbose --target x86_64-apple-darwin
|
||||
echo "Build completed"
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
mkdir -p artifacts/{sigs,updaters,shas}
|
||||
mv packages/hoppscotch-agent/src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/*_x64.dmg artifacts/Hoppscotch_Agent_mac_x64.dmg
|
||||
mv packages/hoppscotch-agent/src-tauri/target/x86_64-apple-darwin/release/bundle/macos/*.app.tar.gz artifacts/updaters/Hoppscotch_Agent_mac_update_x64.tar.gz
|
||||
mv packages/hoppscotch-agent/src-tauri/target/x86_64-apple-darwin/release/bundle/macos/*.app.tar.gz.sig artifacts/sigs/Hoppscotch_Agent_mac_update_x64.tar.gz.sig
|
||||
- name: Generate checksums
|
||||
timeout-minutes: 2
|
||||
run: |
|
||||
cd artifacts
|
||||
for file in *; do
|
||||
if [ -f "$file" ]; then
|
||||
shasum -a 256 "$file" > "shas/${file}.sha256"
|
||||
fi
|
||||
done
|
||||
cd updaters
|
||||
for file in *; do
|
||||
if [ -f "$file" ]; then
|
||||
shasum -a 256 "$file" > "../shas/${file}.sha256"
|
||||
fi
|
||||
done
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Hoppscotch_Agent-macos-x86_64
|
||||
path: artifacts/*
|
||||
build-macos-aarch64:
|
||||
name: Build MacOS ARM64 (.dmg)
|
||||
runs-on: macos-latest
|
||||
if: ${{ inputs.build_macos_arm64 }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout hoppscotch/hoppscotch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: hoppscotch/hoppscotch
|
||||
ref: ${{ inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: Install Rust target
|
||||
timeout-minutes: 5
|
||||
run: rustup target add aarch64-apple-darwin
|
||||
- name: Install additional tools
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
mkdir __dist/
|
||||
cd __dist/
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.0.1/cargo-tauri-aarch64-apple-darwin.zip"
|
||||
unzip cargo-tauri-aarch64-apple-darwin.zip
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
- name: Import Code-Signing Certificates
|
||||
uses: apple-actions/import-codesign-certs@v3
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE }}
|
||||
p12-password: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE_PASSWORD }}
|
||||
keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
- name: Cache Rust dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-arm-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Install dependencies
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm install --filter hoppscotch-agent
|
||||
- name: Build Tauri app
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.AGENT_TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.AGENT_TAURI_SIGNING_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.HOPPSCOTCH_APPLE_ID }}
|
||||
APPLE_PASSWORD: ${{ secrets.HOPPSCOTCH_APPLE_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.HOPPSCOTCH_APPLE_TEAM_ID }}
|
||||
APPLE_SIGNING_IDENTITY: ${{ secrets.HOPPSCOTCH_APPLE_SIGNING_IDENTITY }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
echo "Starting ARM64 build..."
|
||||
pnpm tauri build --verbose --target aarch64-apple-darwin
|
||||
echo "Build completed"
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
mkdir -p artifacts/{sigs,updaters,shas}
|
||||
mv packages/hoppscotch-agent/src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*_aarch64.dmg artifacts/Hoppscotch_Agent_mac_aarch64.dmg
|
||||
mv packages/hoppscotch-agent/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/*.app.tar.gz artifacts/updaters/Hoppscotch_Agent_mac_update_aarch64.tar.gz
|
||||
mv packages/hoppscotch-agent/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/*.app.tar.gz.sig artifacts/sigs/Hoppscotch_Agent_mac_update_aarch64.tar.gz.sig
|
||||
- name: Generate checksums
|
||||
timeout-minutes: 2
|
||||
run: |
|
||||
cd artifacts
|
||||
for file in *; do
|
||||
if [ -f "$file" ]; then
|
||||
shasum -a 256 "$file" > "shas/${file}.sha256"
|
||||
fi
|
||||
done
|
||||
cd updaters
|
||||
for file in *; do
|
||||
if [ -f "$file" ]; then
|
||||
shasum -a 256 "$file" > "../shas/${file}.sha256"
|
||||
fi
|
||||
done
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Hoppscotch_Agent-macos-arm64
|
||||
path: artifacts/*
|
||||
build-linux-deb:
|
||||
name: Build Linux x86_64 (.deb)
|
||||
runs-on: ubuntu-22.04
|
||||
if: ${{ inputs.build_linux_deb }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout hoppscotch/hoppscotch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: hoppscotch/hoppscotch
|
||||
ref: ${{ inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: Install system dependencies
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libwebkit2gtk-4.1-dev \
|
||||
build-essential \
|
||||
curl \
|
||||
wget \
|
||||
file \
|
||||
libxdo-dev \
|
||||
libssl-dev \
|
||||
libayatana-appindicator3-dev \
|
||||
librsvg2-dev
|
||||
- name: Install additional tools
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.0.1/cargo-tauri-x86_64-unknown-linux-gnu.tgz"
|
||||
tar -xzf cargo-tauri-x86_64-unknown-linux-gnu.tgz
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
|
||||
curl -LO "https://github.com/thedodd/trunk/releases/download/v0.17.5/trunk-x86_64-unknown-linux-gnu.tar.gz"
|
||||
tar -xzf trunk-x86_64-unknown-linux-gnu.tar.gz
|
||||
chmod +x trunk
|
||||
sudo mv trunk /usr/local/bin/
|
||||
- name: Cache Rust dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Install dependencies
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm install --filter hoppscotch-agent
|
||||
- name: Build Tauri app
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm tauri build --verbose -b deb -b updater
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
mkdir -p artifacts/{sigs,shas}
|
||||
mv packages/hoppscotch-agent/src-tauri/target/release/bundle/deb/*.deb artifacts/Hoppscotch_Agent_linux_x64.deb
|
||||
- name: Generate checksums
|
||||
run: |
|
||||
cd artifacts
|
||||
for file in *; do
|
||||
if [ -f "$file" ]; then
|
||||
sha256sum "$file" > "shas/${file}.sha256"
|
||||
fi
|
||||
done
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Hoppscotch_Agent-linux-deb
|
||||
path: artifacts/*
|
||||
build-linux-appimage:
|
||||
name: Build Linux x86_64 (.AppImage)
|
||||
runs-on: ubuntu-22.04
|
||||
if: ${{ inputs.build_linux_appimage }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout hoppscotch/hoppscotch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: hoppscotch/hoppscotch
|
||||
ref: ${{ inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: Install system dependencies
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libwebkit2gtk-4.1-dev \
|
||||
build-essential \
|
||||
curl \
|
||||
wget \
|
||||
file \
|
||||
libxdo-dev \
|
||||
libssl-dev \
|
||||
libayatana-appindicator3-dev \
|
||||
librsvg2-dev
|
||||
- name: Install additional tools
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.0.1/cargo-tauri-x86_64-unknown-linux-gnu.tgz"
|
||||
tar -xzf cargo-tauri-x86_64-unknown-linux-gnu.tgz
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
|
||||
curl -LO "https://github.com/thedodd/trunk/releases/download/v0.17.5/trunk-x86_64-unknown-linux-gnu.tar.gz"
|
||||
tar -xzf trunk-x86_64-unknown-linux-gnu.tar.gz
|
||||
chmod +x trunk
|
||||
sudo mv trunk /usr/local/bin/
|
||||
- name: Cache Rust dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Install dependencies
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm install --filter hoppscotch-agent
|
||||
- name: Build Tauri app
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm tauri build --verbose -b appimage -b updater
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
mkdir -p artifacts/{sigs,shas}
|
||||
mv packages/hoppscotch-agent/src-tauri/target/release/bundle/appimage/*.AppImage artifacts/Hoppscotch_Agent_linux_x64.AppImage
|
||||
mv packages/hoppscotch-agent/src-tauri/target/release/bundle/appimage/*.AppImage.sig artifacts/sigs/Hoppscotch_Agent_linux_x64.AppImage.sig
|
||||
- name: Generate checksums
|
||||
run: |
|
||||
cd artifacts
|
||||
for file in *; do
|
||||
if [ -f "$file" ]; then
|
||||
sha256sum "$file" > "shas/${file}.sha256"
|
||||
fi
|
||||
done
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Hoppscotch_Agent-linux-appimage
|
||||
path: artifacts/*
|
||||
build-windows-installer:
|
||||
name: Build Windows x86_64 (.msi)
|
||||
runs-on: windows-latest
|
||||
if: ${{ inputs.build_windows_installer }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout hoppscotch/hoppscotch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: hoppscotch/hoppscotch
|
||||
ref: ${{ inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: Download trusted-signing-cli
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Invoke-WebRequest -Uri "https://github.com/Levminer/trusted-signing-cli/releases/download/0.8.0/trusted-signing-cli.exe" -OutFile "trusted-signing-cli.exe"
|
||||
Move-Item -Path "trusted-signing-cli.exe" -Destination "$env:GITHUB_WORKSPACE\trusted-signing-cli.exe"
|
||||
echo "$env:GITHUB_WORKSPACE" | Out-File -FilePath $env:GITHUB_PATH -Append -Encoding utf8
|
||||
- name: Setting up Windows Environment
|
||||
timeout-minutes: 20
|
||||
shell: bash
|
||||
env:
|
||||
WINDOWS_SIGN_COMMAND: trusted-signing-cli -e ${{ secrets.AZURE_ENDPOINT }} -a ${{ secrets.AZURE_CODE_SIGNING_NAME }} -c ${{ secrets.AZURE_CERT_PROFILE_NAME }} %1
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
cat './src-tauri/tauri.conf.json' | jq '.bundle .windows += { "signCommand": env.WINDOWS_SIGN_COMMAND}' > './src-tauri/temp.json' && mv './src-tauri/temp.json' './src-tauri/tauri.conf.json'
|
||||
- name: Cache Rust dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Install dependencies
|
||||
timeout-minutes: 15
|
||||
shell: bash
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm install --filter hoppscotch-agent
|
||||
- name: Build Tauri app
|
||||
timeout-minutes: 30
|
||||
shell: powershell
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.AGENT_TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.AGENT_TAURI_SIGNING_PASSWORD }}
|
||||
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
|
||||
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
|
||||
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm tauri build --verbose -b msi -b updater
|
||||
- name: Prepare artifacts
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p artifacts/{sigs,shas}
|
||||
mv packages/hoppscotch-agent/src-tauri/target/release/bundle/msi/*_x64_en-US.msi artifacts/Hoppscotch_Agent_win_x64.msi
|
||||
mv packages/hoppscotch-agent/src-tauri/target/release/bundle/msi/*_x64_en-US.msi.sig artifacts/sigs/Hoppscotch_Agent_win_x64.msi.sig
|
||||
- name: Generate checksums
|
||||
shell: powershell
|
||||
run: |
|
||||
cd artifacts
|
||||
Get-ChildItem -File | ForEach-Object {
|
||||
$hash = Get-FileHash -Algorithm SHA256 $_.Name
|
||||
$hash.Hash + " " + $_.Name | Out-File -Encoding UTF8 "shas/$($_.Name).sha256"
|
||||
}
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Hoppscotch_Agent-windows-installer
|
||||
path: artifacts/*
|
||||
build-windows-portable:
|
||||
name: Build Windows x86_64 Portable
|
||||
runs-on: windows-latest
|
||||
if: ${{ inputs.build_windows_portable }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout hoppscotch/hoppscotch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: hoppscotch/hoppscotch
|
||||
ref: ${{ inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: Download trusted-signing-cli
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Invoke-WebRequest -Uri "https://github.com/Levminer/trusted-signing-cli/releases/download/0.8.0/trusted-signing-cli.exe" -OutFile "trusted-signing-cli.exe"
|
||||
Move-Item -Path "trusted-signing-cli.exe" -Destination "$env:GITHUB_WORKSPACE\trusted-signing-cli.exe"
|
||||
echo "$env:GITHUB_WORKSPACE" | Out-File -FilePath $env:GITHUB_PATH -Append -Encoding utf8
|
||||
- name: Setting up Windows Environment
|
||||
timeout-minutes: 20
|
||||
shell: bash
|
||||
env:
|
||||
WINDOWS_SIGN_COMMAND: trusted-signing-cli -e ${{ secrets.AZURE_ENDPOINT }} -a ${{ secrets.AZURE_CODE_SIGNING_NAME }} -c ${{ secrets.AZURE_CERT_PROFILE_NAME }} %1
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
cat './src-tauri/tauri.portable.conf.json' | jq '.bundle .windows += { "signCommand": env.WINDOWS_SIGN_COMMAND}' > './src-tauri/temp_portable.json' && mv './src-tauri/temp_portable.json' './src-tauri/tauri.portable.conf.json'
|
||||
- name: Cache Rust dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Install dependencies
|
||||
timeout-minutes: 15
|
||||
shell: bash
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm install --filter hoppscotch-agent
|
||||
- name: Build Tauri app
|
||||
timeout-minutes: 30
|
||||
shell: powershell
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.AGENT_TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.AGENT_TAURI_SIGNING_PASSWORD }}
|
||||
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
|
||||
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
|
||||
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
pnpm tauri build --verbose --config src-tauri/tauri.portable.conf.json -- --no-default-features --features portable
|
||||
- name: Sign portable executable
|
||||
shell: powershell
|
||||
env:
|
||||
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
|
||||
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
|
||||
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
|
||||
run: |
|
||||
cd packages/hoppscotch-agent
|
||||
trusted-signing-cli -e ${{ secrets.AZURE_ENDPOINT }} -a ${{ secrets.AZURE_CODE_SIGNING_NAME }} -c ${{ secrets.AZURE_CERT_PROFILE_NAME }} "src-tauri/target/release/hoppscotch-agent.exe"
|
||||
- name: Zip portable executable
|
||||
shell: powershell
|
||||
run: |
|
||||
Compress-Archive -Path "packages/hoppscotch-agent/src-tauri/target/release/hoppscotch-agent.exe" -DestinationPath "packages/hoppscotch-agent/src-tauri/target/release/Hoppscotch_Agent_win_x64_portable.zip"
|
||||
- name: Prepare artifacts
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p artifacts/{sigs,shas}
|
||||
mv packages/hoppscotch-agent/src-tauri/target/release/Hoppscotch_Agent_win_x64_portable.zip artifacts/Hoppscotch_Agent_win_x64_portable.zip
|
||||
- name: Generate checksums
|
||||
shell: powershell
|
||||
run: |
|
||||
cd artifacts
|
||||
Get-ChildItem -File | ForEach-Object {
|
||||
$hash = Get-FileHash -Algorithm SHA256 $_.Name
|
||||
$hash.Hash + " " + $_.Name | Out-File -Encoding UTF8 "shas/$($_.Name).sha256"
|
||||
}
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Hoppscotch_Agent-windows-portable
|
||||
path: artifacts/*
|
||||
create-update-manifest:
|
||||
name: Create Update Manifest
|
||||
needs: [build-macos-x86_64, build-macos-aarch64, build-linux-deb, build-linux-appimage, build-windows-installer, build-windows-portable]
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ inputs.build_macos_x64 && inputs.build_macos_arm64 && inputs.build_linux_appimage && inputs.build_windows_installer }}
|
||||
steps:
|
||||
- name: Download all artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
- name: List downloaded artifacts
|
||||
run: find artifacts -type f | sort
|
||||
- name: Create update manifest
|
||||
run: |
|
||||
VERSION="${{ inputs.version }}"
|
||||
CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ")
|
||||
|
||||
cat > artifacts/hoppscotch-agent-update.json << EOF
|
||||
{
|
||||
"version": "${VERSION}",
|
||||
"notes": "${{ inputs.release_notes }}",
|
||||
"pub_date": "${CURRENT_DATE}",
|
||||
"platforms": {
|
||||
"darwin-x86_64": {
|
||||
"signature": "$(cat artifacts/Hoppscotch_Agent-macos-x86_64/sigs/Hoppscotch_Agent_mac_update_x64.tar.gz.sig)",
|
||||
"url": "https://github.com/hoppscotch/agent-releases/releases/download/${VERSION}/Hoppscotch_Agent_mac_update_x64.tar.gz"
|
||||
},
|
||||
"darwin-aarch64": {
|
||||
"signature": "$(cat artifacts/Hoppscotch_Agent-macos-arm64/sigs/Hoppscotch_Agent_mac_update_aarch64.tar.gz.sig)",
|
||||
"url": "https://github.com/hoppscotch/agent-releases/releases/download/${VERSION}/Hoppscotch_Agent_mac_update_aarch64.tar.gz"
|
||||
},
|
||||
"linux-x86_64": {
|
||||
"signature": "$(cat artifacts/Hoppscotch_Agent-linux-appimage/sigs/Hoppscotch_Agent_linux_x64.AppImage.sig)",
|
||||
"url": "https://github.com/hoppscotch/agent-releases/releases/download/${VERSION}/Hoppscotch_Agent_linux_x64.AppImage"
|
||||
},
|
||||
"windows-x86_64": {
|
||||
"signature": "$(cat artifacts/Hoppscotch_Agent-windows-installer/sigs/Hoppscotch_Agent_win_x64.msi.sig)",
|
||||
"url": "https://github.com/hoppscotch/agent-releases/releases/download/${VERSION}/Hoppscotch_Agent_win_x64.msi"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
- name: Upload manifest
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: update-manifest
|
||||
path: artifacts/hoppscotch-agent-update.json
|
||||
502
.github/workflows/build-hoppscotch-desktop.yml
vendored
502
.github/workflows/build-hoppscotch-desktop.yml
vendored
|
|
@ -1,502 +0,0 @@
|
|||
name: Build Desktop Self Host - AIO
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: Tag of the version to build
|
||||
required: true
|
||||
repository:
|
||||
description: Repository to checkout
|
||||
required: false
|
||||
default: "hoppscotch/hoppscotch"
|
||||
branch:
|
||||
description: Branch to checkout
|
||||
required: true
|
||||
default: "main"
|
||||
tag:
|
||||
description: Tag to checkout (takes precedence over branch if provided)
|
||||
required: false
|
||||
default: ""
|
||||
release_notes:
|
||||
description: Release notes for the update
|
||||
required: false
|
||||
default: "PLACEHOLDER RELEASE NOTES"
|
||||
disable_signing:
|
||||
description: Disable executable signing
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
build_linux:
|
||||
description: Build for Linux
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_windows:
|
||||
description: Build for Windows
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_macos_x64:
|
||||
description: Build for macOS x64
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
build_macos_arm64:
|
||||
description: Build for macOS ARM64
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
WORKSPACE_PATH: ${{ github.workspace }}
|
||||
WEB_PATH: ${{ github.workspace }}/packages/hoppscotch-selfhost-web
|
||||
DESKTOP_PATH: ${{ github.workspace }}/packages/hoppscotch-desktop
|
||||
BUNDLER_PATH: ${{ github.workspace }}/packages/hoppscotch-desktop/crates/webapp-bundler
|
||||
jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-24.04
|
||||
if: ${{ inputs.build_linux }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ inputs.repository }}
|
||||
ref: ${{ inputs.tag != '' && inputs.tag || inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.18.3
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: nightly
|
||||
override: true
|
||||
- name: Install additional tools
|
||||
run: |
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.2.0/cargo-tauri-x86_64-unknown-linux-gnu.tgz"
|
||||
tar -xzf cargo-tauri-x86_64-unknown-linux-gnu.tgz
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
sudo apt update;
|
||||
sudo apt install -y \
|
||||
build-essential \
|
||||
curl \
|
||||
wget \
|
||||
file \
|
||||
libssl-dev \
|
||||
libgtk-3-dev \
|
||||
libappindicator3-dev \
|
||||
librsvg2-dev;
|
||||
|
||||
sudo apt install -y \
|
||||
libwebkit2gtk-4.1-0=2.44.0-2 \
|
||||
libwebkit2gtk-4.1-dev=2.44.0-2 \
|
||||
libjavascriptcoregtk-4.1-0=2.44.0-2 \
|
||||
libjavascriptcoregtk-4.1-dev=2.44.0-2 \
|
||||
gir1.2-javascriptcoregtk-4.1=2.44.0-2 \
|
||||
gir1.2-webkit2-4.1=2.44.0-2;
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Setup environment
|
||||
run: |
|
||||
if [ ! -z "${{ secrets.ENV_FILE_CONTENT }}" ]; then
|
||||
echo "${{ secrets.ENV_FILE_CONTENT }}" > ${{ env.WORKSPACE_PATH }}/.env
|
||||
echo "Created .env file from repository secret"
|
||||
elif [ -f "${{ env.WORKSPACE_PATH }}/.env" ]; then
|
||||
echo "Using existing .env file found in repository"
|
||||
else
|
||||
cp ${{ env.WORKSPACE_PATH }}/.env.example ${{ env.WORKSPACE_PATH }}/.env
|
||||
echo "No .env found, copied from .env.example template"
|
||||
fi
|
||||
pnpm install --dir ${{ env.DESKTOP_PATH }}
|
||||
- name: Build web app
|
||||
run: |
|
||||
pnpm install --dir ${{ env.WEB_PATH }}
|
||||
pnpm --dir ${{ env.WEB_PATH }} generate
|
||||
- name: Build and run webapp-bundler
|
||||
run: |
|
||||
cargo build --release --manifest-path ${{ env.BUNDLER_PATH }}/Cargo.toml
|
||||
${{ env.BUNDLER_PATH }}/target/release/webapp-bundler \
|
||||
--input ${{ env.WEB_PATH }}/dist \
|
||||
--output ${{ env.DESKTOP_PATH }}/bundle.zip \
|
||||
--manifest ${{ env.DESKTOP_PATH }}/manifest.json
|
||||
- name: Build AppImage
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose -b appimage -b updater
|
||||
- name: Build DEB
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose -b deb -b updater
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
ls -lahR ${{ env.DESKTOP_PATH }}/src-tauri/target/release/bundle/
|
||||
mkdir -p dist
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/release/bundle/appimage/*.AppImage dist/Hoppscotch_SelfHost_linux_x64.AppImage
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/release/bundle/appimage/*.AppImage.sig dist/Hoppscotch_SelfHost_linux_x64.AppImage.sig
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/release/bundle/deb/*.deb dist/Hoppscotch_SelfHost_linux_x64.deb
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: selfhost-desktop-linux
|
||||
path: dist/*
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
if: ${{ inputs.build_windows }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ inputs.repository }}
|
||||
ref: ${{ inputs.tag != '' && inputs.tag || inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- name: Set Perl environment variables
|
||||
shell: pwsh
|
||||
run: |
|
||||
echo "PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
||||
echo "OPENSSL_SRC_PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.18.3
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: nightly
|
||||
override: true
|
||||
- name: Download trusted-signing-cli
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Invoke-WebRequest -Uri "https://github.com/Levminer/trusted-signing-cli/releases/download/0.8.0/trusted-signing-cli.exe" -OutFile "trusted-signing-cli.exe"
|
||||
Move-Item -Path "trusted-signing-cli.exe" -Destination "$env:GITHUB_WORKSPACE\trusted-signing-cli.exe"
|
||||
echo "$env:GITHUB_WORKSPACE" | Out-File -FilePath $env:GITHUB_PATH -Append -Encoding utf8
|
||||
- name: Setting up Windows Signing Environment
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
timeout-minutes: 20
|
||||
shell: bash
|
||||
env:
|
||||
WINDOWS_SIGN_COMMAND: trusted-signing-cli -e ${{ secrets.AZURE_ENDPOINT }} -a ${{ secrets.AZURE_CODE_SIGNING_NAME }} -c ${{ secrets.AZURE_CERT_PROFILE_NAME }} %1
|
||||
run: |
|
||||
cat "${{ env.DESKTOP_PATH }}/src-tauri/tauri.conf.json" | jq '.bundle .windows += { "signCommand": env.WINDOWS_SIGN_COMMAND}' > "${{ env.DESKTOP_PATH }}/src-tauri/temp.json" && mv "${{ env.DESKTOP_PATH }}/src-tauri/temp.json" "${{ env.DESKTOP_PATH }}/src-tauri/tauri.conf.json"
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Setup environment
|
||||
shell: pwsh
|
||||
run: |
|
||||
if ("${{ secrets.ENV_FILE_CONTENT }}" -ne "") {
|
||||
"${{ secrets.ENV_FILE_CONTENT }}" | Out-File -FilePath ${{ env.WORKSPACE_PATH }}\.env -Encoding utf8
|
||||
Write-Host "Created .env file from repository secret"
|
||||
} elseif (Test-Path -Path "${{ env.WORKSPACE_PATH }}\.env") {
|
||||
Write-Host "Using existing .env file found in repository"
|
||||
} else {
|
||||
Copy-Item ${{ env.WORKSPACE_PATH }}\.env.example ${{ env.WORKSPACE_PATH }}\.env
|
||||
Write-Host "No .env found, copied from .env.example template"
|
||||
}
|
||||
pnpm install -f --shamefully-hoist --ignore-scripts
|
||||
pnpm --filter hoppscotch-backend exec prisma generate
|
||||
pnpm install -f --shamefully-hoist --dir ${{ env.DESKTOP_PATH }}
|
||||
- name: Build web app
|
||||
shell: pwsh
|
||||
run: |
|
||||
pnpm install --dir ${{ env.WEB_PATH }}
|
||||
pnpm --dir ${{ env.WEB_PATH }} generate
|
||||
- name: Build and run webapp-bundler
|
||||
shell: pwsh
|
||||
run: |
|
||||
cargo build --release --manifest-path ${{ env.BUNDLER_PATH }}\Cargo.toml
|
||||
${{ env.BUNDLER_PATH }}\target\release\webapp-bundler.exe `
|
||||
--input ${{ env.WEB_PATH }}\dist `
|
||||
--output ${{ env.DESKTOP_PATH }}\bundle.zip `
|
||||
--manifest ${{ env.DESKTOP_PATH }}\manifest.json
|
||||
- name: Build Tauri app with Azure signing
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
shell: powershell
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
|
||||
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
|
||||
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose -b msi -b updater
|
||||
- name: Build Tauri app without Azure signing
|
||||
if: ${{ inputs.disable_signing == true }}
|
||||
shell: powershell
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose -b msi -b updater
|
||||
- name: Prepare artifacts
|
||||
shell: pwsh
|
||||
run: |
|
||||
Get-ChildItem -Recurse ${{ env.DESKTOP_PATH }}\src-tauri\target\release\bundle
|
||||
mkdir dist
|
||||
Copy-Item ${{ env.DESKTOP_PATH }}\src-tauri\target\release\bundle\msi\*_x64_en-US.msi dist\Hoppscotch_SelfHost_win_x64.msi
|
||||
Copy-Item ${{ env.DESKTOP_PATH }}\src-tauri\target\release\bundle\msi\*_x64_en-US.msi.sig dist\Hoppscotch_SelfHost_win_x64.msi.sig
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: selfhost-desktop-windows
|
||||
path: dist/*
|
||||
build-macos-x64:
|
||||
runs-on: macos-latest
|
||||
if: ${{ inputs.build_macos_x64 }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ inputs.repository }}
|
||||
ref: ${{ inputs.tag != '' && inputs.tag || inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.18.3
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: nightly
|
||||
override: true
|
||||
- name: Install Rust target
|
||||
run: rustup target add x86_64-apple-darwin
|
||||
- name: Install additional tools
|
||||
run: |
|
||||
mkdir __dist/
|
||||
cd __dist/
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.2.0/cargo-tauri-x86_64-apple-darwin.zip"
|
||||
unzip cargo-tauri-x86_64-apple-darwin.zip
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
- uses: apple-actions/import-codesign-certs@v3
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE }}
|
||||
p12-password: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE_PASSWORD }}
|
||||
keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-x86_64-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Setup environment
|
||||
run: |
|
||||
if [ ! -z "${{ secrets.ENV_FILE_CONTENT }}" ]; then
|
||||
echo "${{ secrets.ENV_FILE_CONTENT }}" > ${{ env.WORKSPACE_PATH }}/.env
|
||||
echo "Created .env file from repository secret"
|
||||
elif [ -f "${{ env.WORKSPACE_PATH }}/.env" ]; then
|
||||
echo "Using existing .env file found in repository"
|
||||
else
|
||||
cp ${{ env.WORKSPACE_PATH }}/.env.example ${{ env.WORKSPACE_PATH }}/.env
|
||||
echo "No .env found, copied from .env.example template"
|
||||
fi
|
||||
pnpm install --dir ${{ env.DESKTOP_PATH }}
|
||||
- name: Build web app
|
||||
run: |
|
||||
pnpm install --dir ${{ env.WEB_PATH }}
|
||||
pnpm --dir ${{ env.WEB_PATH }} generate
|
||||
- name: Build and run webapp-bundler
|
||||
run: |
|
||||
cargo build --release --manifest-path ${{ env.BUNDLER_PATH }}/Cargo.toml
|
||||
${{ env.BUNDLER_PATH }}/target/release/webapp-bundler \
|
||||
--input ${{ env.WEB_PATH }}/dist \
|
||||
--output ${{ env.DESKTOP_PATH }}/bundle.zip \
|
||||
--manifest ${{ env.DESKTOP_PATH }}/manifest.json
|
||||
- name: Build Tauri app with Apple signing
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.HOPPSCOTCH_APPLE_ID }}
|
||||
APPLE_PASSWORD: ${{ secrets.HOPPSCOTCH_APPLE_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.HOPPSCOTCH_APPLE_TEAM_ID }}
|
||||
APPLE_SIGNING_IDENTITY: ${{ secrets.HOPPSCOTCH_APPLE_SIGNING_IDENTITY }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose --target x86_64-apple-darwin
|
||||
- name: Build Tauri app without Apple signing
|
||||
if: ${{ inputs.disable_signing == true }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose --target x86_64-apple-darwin
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
ls -lahR ${{ env.DESKTOP_PATH }}/src-tauri/target/x86_64-apple-darwin/release/bundle/
|
||||
mkdir -p dist
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/*.dmg dist/Hoppscotch_SelfHost_mac_x64.dmg
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/x86_64-apple-darwin/release/bundle/macos/Hoppscotch.app.tar.gz dist/Hoppscotch_SelfHost_mac_x64.tar.gz
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/x86_64-apple-darwin/release/bundle/macos/Hoppscotch.app.tar.gz.sig dist/Hoppscotch_SelfHost_mac_x64.tar.gz.sig
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: selfhost-desktop-macos-x64
|
||||
path: dist/*
|
||||
build-macos-arm64:
|
||||
runs-on: macos-latest
|
||||
if: ${{ inputs.build_macos_arm64 }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ inputs.repository }}
|
||||
ref: ${{ inputs.tag != '' && inputs.tag || inputs.branch }}
|
||||
token: ${{ secrets.HOPPSCOTCH_GITHUB_CHECKOUT_TOKEN }}
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.18.3
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: nightly
|
||||
override: true
|
||||
- name: Install Rust target
|
||||
run: rustup target add aarch64-apple-darwin
|
||||
- name: Install additional tools
|
||||
run: |
|
||||
mkdir __dist/
|
||||
cd __dist/
|
||||
curl -LO "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.2.0/cargo-tauri-aarch64-apple-darwin.zip"
|
||||
unzip cargo-tauri-aarch64-apple-darwin.zip
|
||||
chmod +x cargo-tauri
|
||||
sudo mv cargo-tauri /usr/local/bin/tauri
|
||||
- uses: apple-actions/import-codesign-certs@v3
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE }}
|
||||
p12-password: ${{ secrets.HOPPSCOTCH_APPLE_CERTIFICATE_PASSWORD }}
|
||||
keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-aarch64-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Setup environment
|
||||
run: |
|
||||
if [ ! -z "${{ secrets.ENV_FILE_CONTENT }}" ]; then
|
||||
echo "${{ secrets.ENV_FILE_CONTENT }}" > ${{ env.WORKSPACE_PATH }}/.env
|
||||
echo "Created .env file from repository secret"
|
||||
elif [ -f "${{ env.WORKSPACE_PATH }}/.env" ]; then
|
||||
echo "Using existing .env file found in repository"
|
||||
else
|
||||
cp ${{ env.WORKSPACE_PATH }}/.env.example ${{ env.WORKSPACE_PATH }}/.env
|
||||
echo "No .env found, copied from .env.example template"
|
||||
fi
|
||||
pnpm install --dir ${{ env.DESKTOP_PATH }}
|
||||
- name: Build web app
|
||||
run: |
|
||||
pnpm install --dir ${{ env.WEB_PATH }}
|
||||
pnpm --dir ${{ env.WEB_PATH }} generate
|
||||
- name: Build and run webapp-bundler
|
||||
run: |
|
||||
cargo build --release --manifest-path ${{ env.BUNDLER_PATH }}/Cargo.toml
|
||||
${{ env.BUNDLER_PATH }}/target/release/webapp-bundler \
|
||||
--input ${{ env.WEB_PATH }}/dist \
|
||||
--output ${{ env.DESKTOP_PATH }}/bundle.zip \
|
||||
--manifest ${{ env.DESKTOP_PATH }}/manifest.json
|
||||
- name: Build Tauri app with Apple signing
|
||||
if: ${{ inputs.disable_signing != true }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.HOPPSCOTCH_APPLE_ID }}
|
||||
APPLE_PASSWORD: ${{ secrets.HOPPSCOTCH_APPLE_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.HOPPSCOTCH_APPLE_TEAM_ID }}
|
||||
APPLE_SIGNING_IDENTITY: ${{ secrets.HOPPSCOTCH_APPLE_SIGNING_IDENTITY }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose --target aarch64-apple-darwin
|
||||
- name: Build Tauri app without Apple signing
|
||||
if: ${{ inputs.disable_signing == true }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
||||
RUST_LOG: debug
|
||||
run: pnpm --dir ${{ env.DESKTOP_PATH }} tauri build --verbose --target aarch64-apple-darwin
|
||||
- name: Prepare artifacts
|
||||
run: |
|
||||
ls -lahR ${{ env.DESKTOP_PATH }}/src-tauri/target/aarch64-apple-darwin/release/bundle/
|
||||
mkdir -p dist
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg dist/Hoppscotch_SelfHost_mac_aarch64.dmg
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/Hoppscotch.app.tar.gz dist/Hoppscotch_SelfHost_mac_aarch64.tar.gz
|
||||
cp ${{ env.DESKTOP_PATH }}/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/Hoppscotch.app.tar.gz.sig dist/Hoppscotch_SelfHost_mac_aarch64.tar.gz.sig
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: selfhost-desktop-macos-aarch64
|
||||
path: dist/*
|
||||
create-update-manifest:
|
||||
needs: [build-linux, build-windows, build-macos-x64, build-macos-arm64]
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ inputs.build_linux && inputs.build_windows && inputs.build_macos_x64 && inputs.build_macos_arm64 }}
|
||||
steps:
|
||||
- name: Download all artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
- name: Create update manifest
|
||||
run: |
|
||||
VERSION="${{ inputs.version }}"
|
||||
CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ")
|
||||
|
||||
cat > artifacts/hoppscotch-selfhost-desktop.json << EOF
|
||||
{
|
||||
"version": "${VERSION}",
|
||||
"notes": "${{ inputs.release_notes }}",
|
||||
"pub_date": "${CURRENT_DATE}",
|
||||
"platforms": {
|
||||
"linux-x86_64": {
|
||||
"signature": "$(cat artifacts/selfhost-desktop-linux/Hoppscotch_SelfHost_linux_x64.AppImage.sig)",
|
||||
"url": "https://github.com/hoppscotch/releases/releases/download/${VERSION}/Hoppscotch_SelfHost_linux_x64.AppImage"
|
||||
},
|
||||
"windows-x86_64": {
|
||||
"signature": "$(cat artifacts/selfhost-desktop-windows/Hoppscotch_SelfHost_win_x64.msi.sig)",
|
||||
"url": "https://github.com/hoppscotch/releases/releases/download/${VERSION}/Hoppscotch_SelfHost_win_x64.msi"
|
||||
},
|
||||
"darwin-x86_64": {
|
||||
"signature": "$(cat artifacts/selfhost-desktop-macos-x64/Hoppscotch_SelfHost_mac_x64.tar.gz.sig)",
|
||||
"url": "https://github.com/hoppscotch/releases/releases/download/${VERSION}/Hoppscotch_SelfHost_mac_x64.tar.gz"
|
||||
},
|
||||
"darwin-aarch64": {
|
||||
"signature": "$(cat artifacts/selfhost-desktop-macos-aarch64/Hoppscotch_SelfHost_mac_aarch64.tar.gz.sig)",
|
||||
"url": "https://github.com/hoppscotch/releases/releases/download/${VERSION}/Hoppscotch_SelfHost_mac_aarch64.tar.gz"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
- name: Upload manifest
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: selfhost-desktop-update-manifest
|
||||
path: artifacts/hoppscotch-selfhost-desktop.json
|
||||
182
.github/workflows/release-push-docker.yml
vendored
182
.github/workflows/release-push-docker.yml
vendored
|
|
@ -1,182 +0,0 @@
|
|||
name: "Push containers to Docker Hub on release"
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*.*.*'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
# NO INPUTS
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
platform: [
|
||||
{ platform: linux/amd64, cache: docker-release-amd64, artifactSuffix: amd64 },
|
||||
{ platform: linux/arm64, cache: docker-release-arm64, artifactSuffix: arm64 },
|
||||
]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup environment
|
||||
run: cp .env.example .env
|
||||
|
||||
- name: Setup QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push the backend container by digest
|
||||
id: backend-build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: backend
|
||||
cache-from: type=gha,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
cache-to: type=gha,mode=max,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
platforms: |
|
||||
${{ matrix.platform.platform }}
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}
|
||||
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
|
||||
|
||||
- name: Build and push the frontend container by digest
|
||||
id: frontend-build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: app
|
||||
cache-from: type=gha,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
cache-to: type=gha,mode=max,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
platforms: |
|
||||
${{ matrix.platform.platform }}
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}
|
||||
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
|
||||
|
||||
- name: Build and push the admin dashboard container by digest
|
||||
id: sh_admin-build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: sh_admin
|
||||
cache-from: type=gha,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
cache-to: type=gha,mode=max,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
platforms: |
|
||||
${{ matrix.platform.platform }}
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}
|
||||
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
|
||||
|
||||
- name: Build and push the AIO container by digest
|
||||
id: aio-build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: aio
|
||||
cache-from: type=gha,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
cache-to: type=gha,mode=max,timeout=200m,scope=${{ matrix.platform.cache }}
|
||||
platforms: |
|
||||
${{ matrix.platform.platform }}
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}
|
||||
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
|
||||
|
||||
- name: Make digest files
|
||||
run: |
|
||||
backend_digest="${{ steps.backend-build.outputs.digest }}"
|
||||
frontend_digest="${{ steps.frontend-build.outputs.digest }}"
|
||||
sh_admin_digest="${{ steps.sh_admin-build.outputs.digest }}"
|
||||
aio_digest="${{ steps.aio-build.outputs.digest }}"
|
||||
|
||||
mkdir -p digests/backend digests/frontend digests/sh_admin digests/aio
|
||||
|
||||
touch "digests/backend/${backend_digest#sha256:}"
|
||||
touch "digests/frontend/${frontend_digest#sha256:}"
|
||||
touch "digests/sh_admin/${sh_admin_digest#sha256:}"
|
||||
touch "digests/aio/${aio_digest#sha256:}"
|
||||
|
||||
- name: Upload digests files as artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: release-docker-build-digests-${{ github.ref_name }}-${{ matrix.platform.artifactSuffix }}
|
||||
path: digests/*
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
assemble-and-push-to-docker-hub:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
steps:
|
||||
- name: Download digests from artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: digests
|
||||
pattern: release-docker-build-digests-${{ github.ref_name }}-*
|
||||
merge-multiple: true
|
||||
|
||||
- name: Setup QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: "[Backend] - Create manifest list and push"
|
||||
working-directory: digests/backend
|
||||
run: |
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}:${{ github.ref_name }} \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}:latest \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
|
||||
- name: "[Frontend] - Create manifest list and push"
|
||||
working-directory: digests/frontend
|
||||
run: |
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}:${{ github.ref_name }} \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}:latest \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
|
||||
- name: "[SH Admin] - Create manifest list and push"
|
||||
working-directory: digests/sh_admin
|
||||
run: |
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}:${{ github.ref_name }} \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}:latest \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
- name: "[AIO] - Create manifest list and push"
|
||||
working-directory: digests/aio
|
||||
run: |
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}:${{ github.ref_name }} \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
docker buildx imagetools create -t ${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}:latest \
|
||||
$(printf '${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}@sha256:%s ' *)
|
||||
|
||||
45
.github/workflows/tests.yml
vendored
45
.github/workflows/tests.yml
vendored
|
|
@ -1,45 +0,0 @@
|
|||
name: Node.js CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main, next, patch]
|
||||
pull_request:
|
||||
branches: [main, next, patch]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
# Pinned to Node.js 22 due to known test failures on Node.js 24.
|
||||
# Future TODO: Investigate test failures and move to Node.js 24 (Active LTS).
|
||||
node-version: [22]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup environment
|
||||
run: mv .env.example .env
|
||||
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v3
|
||||
with:
|
||||
version: 10
|
||||
run_install: false
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
env:
|
||||
DATABASE_URL: postgresql://postgres:testpass@localhost:5432/hoppscotch
|
||||
DATA_ENCRYPTION_KEY: "12345678901234567890123456789012"
|
||||
|
||||
- name: Run tests
|
||||
run: pnpm test
|
||||
Loading…
Reference in a new issue