Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ci): fix building toolchain #1996

Closed
53 changes: 29 additions & 24 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,11 @@ jobs:
with:
lfs: 'true'

- run: corepack enable

- uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"

- name: Install dependencies
run: yarn install
- run: corepack enable

- name: Setup
env:
Expand All @@ -60,14 +56,18 @@ jobs:
curl -fsSL https://deno.land/x/install/install.sh | sh
export PATH=$HOME/.deno/bin:$PATH

# Authenticate NPM
yarn config set 'npmRegistries["//registry.npmjs.org"].npmAuthToken' ${{ secrets.NPM_TOKEN }}
yarn config set 'npmScopes["@rivet-gg"].npmPublishRegistry' https://registry.npmjs.org/
# Authenticate with NPM
cat << EOF > ~/.yarnrc.yml
npmAuthToken: "${{ secrets.NPM_TOKEN }}"
EOF

# Install dependencies
yarn install --immutable

if [ "${{ inputs.latest }}" = "true" ]; then
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --setup
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --setupCi
else
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --no-latest --setup
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --no-latest --setupCi
fi


Expand All @@ -94,18 +94,19 @@ jobs:
image: rust:1.82.0
steps:
- uses: actions/checkout@v4
with:
lfs: 'true'

- run: corepack enable
# Required for running in Docker
- name: Git LFS Pull
run: |
apt-get update
apt-get install git-lfs
git lfs pull

- uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"

- name: Install dependencies (TEMP)
run: yarn install && yarn build --filter @rivet-gg/hub
- run: corepack enable

- name: Build
env:
Expand All @@ -124,6 +125,9 @@ jobs:

# Expose token for pulling GH artifacts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Pull via Git CLI to improve reliability in CI
ENV CARGO_NET_GIT_FETCH_WITH_CLI: "true"
run: |
# Install required components for each platform
apt-get update
Expand Down Expand Up @@ -228,18 +232,19 @@ jobs:
uses: douglascamata/setup-docker-macos-action@v1-alpha

- uses: actions/checkout@v4
with:
lfs: 'true'

- run: corepack enable
# Required for running in Docker
- name: Git LFS Pull
run: |
apt-get update
apt-get install git-lfs
git lfs pull

- uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"

- name: Install dependencies (TEMP)
run: yarn install && yarn build --filter @rivet-gg/hub
- run: corepack enable

- name: Set outputs
id: vars
Expand Down Expand Up @@ -372,8 +377,8 @@ jobs:
export PATH=$HOME/.deno/bin:$PATH

if [ "${{ inputs.latest }}" = "true" ]; then
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --complete
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --completeCi
else
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --no-latest --complete
./scripts/release/main.ts --version "${{ github.event.inputs.version }}" --no-latest --completeCi
fi

11 changes: 11 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,14 @@ Once installed, run `nix-shell` to build your development environment.
- Once approved, it's up to you to merge your commit. If deploying the frontend, make sure to monitor the
changes from Sentry before going offline.
- Manually mark your issue as _Complete_ once finished.

### Release

```sh
# Release latest
just release-latest VERSION

# Release no latest (including rc)
just release-nolatest VERSION
```

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ resolver = "2"
members = ["packages/api/actor","packages/api/auth","packages/api/cf-verification","packages/api/cloud","packages/api/games","packages/api/group","packages/api/identity","packages/api/job","packages/api/matchmaker","packages/api/monolith-edge","packages/api/monolith-public","packages/api/portal","packages/api/provision","packages/api/status","packages/api/traefik-provider","packages/api/ui","packages/common/api-helper/build","packages/common/api-helper/macros","packages/common/cache/build","packages/common/cache/result","packages/common/chirp-workflow/core","packages/common/chirp-workflow/macros","packages/common/chirp/client","packages/common/chirp/metrics","packages/common/chirp/perf","packages/common/chirp/types","packages/common/chirp/worker","packages/common/chirp/worker-attributes","packages/common/claims","packages/common/config","packages/common/connection","packages/common/convert","packages/common/deno-embed","packages/common/env","packages/common/formatted-error","packages/common/global-error","packages/common/health-checks","packages/common/hub-embed","packages/common/kv-str","packages/common/metrics","packages/common/migrate","packages/common/nomad-util","packages/common/operation/core","packages/common/operation/macros","packages/common/pools","packages/common/redis-util","packages/common/runtime","packages/common/s3-util","packages/common/schemac","packages/common/service-manager","packages/common/smithy-output/api-auth/rust","packages/common/smithy-output/api-auth/rust-server","packages/common/smithy-output/api-cf-verification/rust","packages/common/smithy-output/api-cf-verification/rust-server","packages/common/smithy-output/api-cloud/rust","packages/common/smithy-output/api-cloud/rust-server","packages/common/smithy-output/api-group/rust","packages/common/smithy-output/api-group/rust-server","packages/common/smithy-output/api-identity/rust","packages/common/smithy-output/api-identity/rust-server","packages/common/smithy-output/api-job/rust","packages/common/smithy-output/api-job/rust-server","packages/common/smithy-output/api-kv/rust","packages/common/smithy-output/api-kv/rust-server","packages/common/smithy-output/api-matchmaker/rust","packages/common/smithy-output/api-matchmaker/rust-server","packages/common/smithy-output/api-party/rust","packages/common/smithy-output/api-party/rust-server","packages/common/smithy-output/api-portal/rust","packages/common/smithy-output/api-portal/rust-server","packages/common/smithy-output/api-status/rust","packages/common/smithy-output/api-status/rust-server","packages/common/smithy-output/api-traefik-provider/rust","packages/common/smithy-output/api-traefik-provider/rust-server","packages/common/test","packages/common/test-images","packages/common/types-proto/build","packages/common/types-proto/core","packages/common/util/core","packages/common/util/macros","packages/common/util/search","packages/infra/client/actor-kv","packages/infra/client/config","packages/infra/client/container-runner","packages/infra/client/echo","packages/infra/client/isolate-v8-runner","packages/infra/client/logs","packages/infra/client/manager","packages/infra/legacy/job-runner","packages/infra/schema-generator","packages/infra/server","packages/services/build","packages/services/build/ops/create","packages/services/build/ops/get","packages/services/build/ops/list-for-env","packages/services/build/ops/list-for-game","packages/services/build/standalone/default-create","packages/services/build/util","packages/services/captcha/ops/hcaptcha-config-get","packages/services/captcha/ops/hcaptcha-verify","packages/services/captcha/ops/request","packages/services/captcha/ops/turnstile-config-get","packages/services/captcha/ops/turnstile-verify","packages/services/captcha/ops/verify","packages/services/captcha/util","packages/services/cdn/ops/namespace-auth-user-remove","packages/services/cdn/ops/namespace-auth-user-update","packages/services/cdn/ops/namespace-create","packages/services/cdn/ops/namespace-domain-create","packages/services/cdn/ops/namespace-domain-remove","packages/services/cdn/ops/namespace-get","packages/services/cdn/ops/namespace-resolve-domain","packages/services/cdn/ops/ns-auth-type-set","packages/services/cdn/ops/ns-enable-domain-public-auth-set","packages/services/cdn/ops/site-create","packages/services/cdn/ops/site-get","packages/services/cdn/ops/site-list-for-game","packages/services/cdn/ops/version-get","packages/services/cdn/ops/version-prepare","packages/services/cdn/ops/version-publish","packages/services/cdn/util","packages/services/cdn/worker","packages/services/cf-custom-hostname/ops/get","packages/services/cf-custom-hostname/ops/list-for-namespace-id","packages/services/cf-custom-hostname/ops/resolve-hostname","packages/services/cf-custom-hostname/worker","packages/services/cloud/ops/device-link-create","packages/services/cloud/ops/game-config-create","packages/services/cloud/ops/game-config-get","packages/services/cloud/ops/game-token-create","packages/services/cloud/ops/namespace-create","packages/services/cloud/ops/namespace-get","packages/services/cloud/ops/namespace-token-development-create","packages/services/cloud/ops/namespace-token-public-create","packages/services/cloud/ops/version-get","packages/services/cloud/ops/version-publish","packages/services/cloud/standalone/default-create","packages/services/cloud/worker","packages/services/cluster","packages/services/cluster/standalone/datacenter-tls-renew","packages/services/cluster/standalone/default-update","packages/services/cluster/standalone/gc","packages/services/cluster/standalone/metrics-publish","packages/services/custom-user-avatar/ops/list-for-game","packages/services/custom-user-avatar/ops/upload-complete","packages/services/debug/ops/email-res","packages/services/ds","packages/services/ds-log/ops/export","packages/services/ds-log/ops/read","packages/services/dynamic-config","packages/services/email-verification/ops/complete","packages/services/email-verification/ops/create","packages/services/email/ops/send","packages/services/external/ops/request-validate","packages/services/external/worker","packages/services/faker/ops/build","packages/services/faker/ops/cdn-site","packages/services/faker/ops/game","packages/services/faker/ops/game-namespace","packages/services/faker/ops/game-version","packages/services/faker/ops/job-run","packages/services/faker/ops/job-template","packages/services/faker/ops/mm-lobby","packages/services/faker/ops/mm-lobby-row","packages/services/faker/ops/mm-player","packages/services/faker/ops/region","packages/services/faker/ops/team","packages/services/faker/ops/user","packages/services/game/ops/banner-upload-complete","packages/services/game/ops/create","packages/services/game/ops/get","packages/services/game/ops/list-all","packages/services/game/ops/list-for-team","packages/services/game/ops/logo-upload-complete","packages/services/game/ops/namespace-create","packages/services/game/ops/namespace-get","packages/services/game/ops/namespace-list","packages/services/game/ops/namespace-resolve-name-id","packages/services/game/ops/namespace-resolve-url","packages/services/game/ops/namespace-validate","packages/services/game/ops/namespace-version-history-list","packages/services/game/ops/namespace-version-set","packages/services/game/ops/recommend","packages/services/game/ops/resolve-name-id","packages/services/game/ops/resolve-namespace-id","packages/services/game/ops/token-development-validate","packages/services/game/ops/validate","packages/services/game/ops/version-create","packages/services/game/ops/version-get","packages/services/game/ops/version-list","packages/services/game/ops/version-validate","packages/services/ip/ops/info","packages/services/job-log/ops/read","packages/services/job-log/worker","packages/services/job-run","packages/services/job/standalone/gc","packages/services/job/util","packages/services/linode","packages/services/linode/standalone/gc","packages/services/load-test/standalone/api-cloud","packages/services/load-test/standalone/mm","packages/services/load-test/standalone/mm-sustain","packages/services/load-test/standalone/sqlx","packages/services/load-test/standalone/watch-requests","packages/services/mm-config/ops/game-get","packages/services/mm-config/ops/game-upsert","packages/services/mm-config/ops/lobby-group-get","packages/services/mm-config/ops/lobby-group-resolve-name-id","packages/services/mm-config/ops/lobby-group-resolve-version","packages/services/mm-config/ops/namespace-config-set","packages/services/mm-config/ops/namespace-config-validate","packages/services/mm-config/ops/namespace-create","packages/services/mm-config/ops/namespace-get","packages/services/mm-config/ops/version-get","packages/services/mm-config/ops/version-prepare","packages/services/mm-config/ops/version-publish","packages/services/mm/ops/dev-player-token-create","packages/services/mm/ops/lobby-find-fail","packages/services/mm/ops/lobby-find-lobby-query-list","packages/services/mm/ops/lobby-find-try-complete","packages/services/mm/ops/lobby-for-run-id","packages/services/mm/ops/lobby-get","packages/services/mm/ops/lobby-history","packages/services/mm/ops/lobby-idle-update","packages/services/mm/ops/lobby-list-for-namespace","packages/services/mm/ops/lobby-list-for-user-id","packages/services/mm/ops/lobby-player-count","packages/services/mm/ops/lobby-runtime-aggregate","packages/services/mm/ops/lobby-state-get","packages/services/mm/ops/player-count-for-namespace","packages/services/mm/ops/player-get","packages/services/mm/standalone/gc","packages/services/mm/util","packages/services/mm/worker","packages/services/monolith/standalone/worker","packages/services/monolith/standalone/workflow-worker","packages/services/nomad/standalone/monitor","packages/services/pegboard","packages/services/pegboard/standalone/dc-init","packages/services/pegboard/standalone/gc","packages/services/pegboard/standalone/metrics-publish","packages/services/pegboard/standalone/ws","packages/services/region/ops/get","packages/services/region/ops/list","packages/services/region/ops/list-for-game","packages/services/region/ops/recommend","packages/services/region/ops/resolve","packages/services/region/ops/resolve-for-game","packages/services/server-spec","packages/services/team-invite/ops/get","packages/services/team-invite/worker","packages/services/team/ops/avatar-upload-complete","packages/services/team/ops/get","packages/services/team/ops/join-request-list","packages/services/team/ops/member-count","packages/services/team/ops/member-get","packages/services/team/ops/member-list","packages/services/team/ops/member-relationship-get","packages/services/team/ops/profile-validate","packages/services/team/ops/recommend","packages/services/team/ops/resolve-display-name","packages/services/team/ops/user-ban-get","packages/services/team/ops/user-ban-list","packages/services/team/ops/validate","packages/services/team/util","packages/services/team/worker","packages/services/telemetry/standalone/beacon","packages/services/tier","packages/services/token/ops/create","packages/services/token/ops/exchange","packages/services/token/ops/get","packages/services/token/ops/revoke","packages/services/upload/ops/complete","packages/services/upload/ops/file-list","packages/services/upload/ops/get","packages/services/upload/ops/list-for-user","packages/services/upload/ops/prepare","packages/services/upload/worker","packages/services/user","packages/services/user-identity/ops/create","packages/services/user-identity/ops/delete","packages/services/user-identity/ops/get","packages/services/user/ops/avatar-upload-complete","packages/services/user/ops/get","packages/services/user/ops/pending-delete-toggle","packages/services/user/ops/profile-validate","packages/services/user/ops/resolve-email","packages/services/user/ops/team-list","packages/services/user/ops/token-create","packages/services/user/standalone/delete-pending","packages/services/user/worker","packages/services/workflow/standalone/gc","packages/services/workflow/standalone/metrics-publish","packages/toolchain/actors-sdk-embed","packages/toolchain/cli","packages/toolchain/js-utils-embed","packages/toolchain/toolchain","sdks/api/full/rust"]

[workspace.package]
version = "25.1.0-rc.1"
version = "25.1.0"
edition = "2021"
authors = ["Rivet Gaming, LLC <developer@rivet.gg>"]
license = "Apache-2.0"
Expand Down
3 changes: 3 additions & 0 deletions docker/universal/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ RUN apt-get update -y && \
# Disable interactive prompt
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0

# Pull via Git CLI to improve reliability in CI
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true

WORKDIR /app

COPY . .
Expand Down
8 changes: 6 additions & 2 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,13 @@ graphite-modify:

[group('github')]
release-latest VERSION:
gh workflow run .github/workflows/release.yaml -f version={{ VERSION }} -f latest=true
./scripts/release/main.ts --setupLocal --version {{ VERSION }}
gh workflow run .github/workflows/release.yaml -f version={{ VERSION }} -f latest=true --ref $(git branch --show-current)
echo 'Once workflow is complete, manually merge Release Please'

[group('github')]
release-nolatest VERSION:
gh workflow run .github/workflows/release.yaml -f version={{ VERSION }} -f latest=false
./scripts/release/main.ts --setupLocal --version {{ VERSION }} --no-latest
gh workflow run .github/workflows/release.yaml -f version={{ VERSION }} -f latest=false --ref $(git branch --show-current)
echo 'Once workflow is complete, manually merge Release Please'

4 changes: 2 additions & 2 deletions packages/api/actor/src/route/actors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -613,8 +613,8 @@ pub async fn upgrade_all(
count += list_res.server_ids.len();
cursor = list_res.server_ids.last().cloned();

// TODO: Add back once we figure out how to cleanly handle if a wf is already complete when
// upgrading
// TODO: Add back once we figure out how to cleanly handle if a wf is already complete when
// upgrading
// let subs = futures_util::stream::iter(list_res.server_ids.clone())
// .map(|server_id| {
// ctx.subscribe::<ds::workflows::server::UpgradeStarted>(("server_id", server_id))
Expand Down
2 changes: 1 addition & 1 deletion packages/services/build/src/ops/get.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use chirp_workflow::prelude::*;
use std::{convert::TryInto, collections::HashMap};
use std::{collections::HashMap, convert::TryInto};

use crate::types;

Expand Down
19 changes: 10 additions & 9 deletions packages/services/cluster/src/workflows/datacenter/scale.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,16 @@ impl Action {
.await?;
}
_ => {
ctx.v(2).workflow(crate::workflows::server::Input2 {
datacenter_id,
server_id,
pool_type,
tags: Vec::new(),
})
.tag("server_id", server_id)
.dispatch()
.await?;
ctx.v(2)
.workflow(crate::workflows::server::Input2 {
datacenter_id,
server_id,
pool_type,
tags: Vec::new(),
})
.tag("server_id", server_id)
.dispatch()
.await?;
}
},
Action::Drain { server_id } => {
Expand Down
8 changes: 4 additions & 4 deletions packages/toolchain/actors-sdk-embed/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ async fn main() -> Result<()> {
fs::remove_dir_all(&dist_path).context("fs::remove_dir_all")?;
}

// Build manager dependencies (required for building the manager itself)
// Build manager dependencies (required for building the manager itself)
let output = tokio::process::Command::new("yarn")
.arg("install")
.arg("--immutable")
.arg("--immutable")
.current_dir(&manager_path)
.output()
.await?;
Expand All @@ -50,7 +50,7 @@ async fn main() -> Result<()> {
let output = tokio::process::Command::new("yarn")
.arg("run")
.arg("build")
.arg("--filter=@rivet-gg/actor-manager")
.arg("--filter=@rivet-gg/actor-manager")
.current_dir(&project_root)
.output()
.await?;
Expand All @@ -59,7 +59,7 @@ async fn main() -> Result<()> {
ensure!(output.status.success(), "yarn build failed");

// Build manager using Rivet build script (not using tsup/turbo because this includes custom
// polyfill functionality)
// polyfill functionality)
build_backend_command_raw(CommandOpts {
task_path: "src/tasks/build/mod.ts",
input: json!({
Expand Down
Loading
Loading