From 00b8c83650bda9448c8035d58de3f103e8783cfe Mon Sep 17 00:00:00 2001 From: Yisheng Cai Date: Fri, 14 Jun 2024 02:33:52 +0800 Subject: [PATCH] Deploy staging env (#21) * Deploy staging env * Fix ci * Fix staging configuration * Fix production configuration --- .github/workflows/deploy.yaml | 14 +++++-------- .github/workflows/stage.yaml | 23 +++++++++++++++++++++ src/index.js | 4 ++++ wrangler.toml | 39 +++++++++++++++++++++++++---------- 4 files changed, 60 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/stage.yaml diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 0f2f6226..84733705 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -13,15 +13,11 @@ jobs: runs-on: ubuntu-latest name: Build & Deploy steps: - - uses: actions/checkout@v2 - - name: Use Node.js - uses: actions/setup-node@v1 - with: - node-version: "12.x" - - run: npm install + - uses: actions/checkout@v4 - name: Publish - uses: cloudflare/wrangler-action@2.0.0 + uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CF_API_TOKEN }} - env: - CF_ACCOUNT_ID: ${{secrets.CF_ACCOUNT_ID}} \ No newline at end of file + accountId: ${{secrets.CF_ACCOUNT_ID}} + command: deploy --env production --minify src/index.js + environment: production \ No newline at end of file diff --git a/.github/workflows/stage.yaml b/.github/workflows/stage.yaml new file mode 100644 index 00000000..db045f69 --- /dev/null +++ b/.github/workflows/stage.yaml @@ -0,0 +1,23 @@ +name: Deploy to Cloudflare Workers(Staging) + +on: + pull_request: + branches: + - master + paths-ignore: + - '**.md' + repository_dispatch: + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + name: Build & Deploy + steps: + - uses: actions/checkout@v4 + - name: Publish + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CF_API_TOKEN }} + accountId: ${{secrets.CF_ACCOUNT_ID}} + command: deploy --env staging --minify src/index.js + environment: staging \ No newline at end of file diff --git a/src/index.js b/src/index.js index 3f737321..e61d67dc 100644 --- a/src/index.js +++ b/src/index.js @@ -6,6 +6,7 @@ addEventListener("fetch", (event) => { const dockerHub = "https://registry-1.docker.io"; const routes = { + // production "docker.libcuda.so": dockerHub, "quay.libcuda.so": "https://quay.io", "gcr.libcuda.so": "https://gcr.io", @@ -13,6 +14,9 @@ const routes = { "k8s.libcuda.so": "https://registry.k8s.io", "ghcr.libcuda.so": "https://ghcr.io", "cloudsmith.libcuda.so": "https://docker.cloudsmith.io", + + // staging + "docker-staging.libcuda.so": dockerHub, }; function routeByHosts(host) { diff --git a/wrangler.toml b/wrangler.toml index 65f7b5ad..17f18f5f 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,18 +1,35 @@ name = "cloudflare-docker-proxy" -workers_dev = true -main = "src/index.js" -compatibility_date = "2021-12-07" +compatibility_date = "2023-12-01" [dev] ip = "0.0.0.0" port = 8787 -local_protocol="http" -upstream_protocol="https" - -[vars] -MODE="production" -TARGET_UPSTREAM="" +local_protocol = "http" [env.dev.vars] -MODE="debug" -TARGET_UPSTREAM="https://registry-1.docker.io" \ No newline at end of file +MODE = "debug" +TARGET_UPSTREAM = "https://registry-1.docker.io" + +[env.production] +name = "cloudflare-docker-proxy" +routes = [ + { pattern = "docker.libcuda.so", custom_domain = true }, + { pattern = "quey.libcuda.so", custom_domain = true }, + { pattern = "gcr.libcuda.so", custom_domain = true }, + { pattern = "k8s-gcr.libcuda.so", custom_domain = true }, + { pattern = "k8s.libcuda.so", custom_domain = true }, + { pattern = "ghcr.libcuda.so", custom_domain = true }, + { pattern = "cloudsmith.libcuda.so", custom_domain = true }, +] + +[env.production.vars] +MODE = "production" +TARGET_UPSTREAM = "" + +[env.staging] +name = "cloudflare-docker-proxy-staging" +route = { pattern = "docker-staging.libcuda.so", custom_domain = true } + +[env.staging.vars] +MODE = "staging" +TARGET_UPSTREAM = ""