ngbs 2 years ago
parent
commit
5ee6b38f2a
1 changed files with 82 additions and 0 deletions
  1. 82 0
      .github/workflows/build-xray.yml

+ 82 - 0
.github/workflows/build-xray.yml

@@ -0,0 +1,82 @@
+name: Build Xray
+
+on:
+  # push:
+  #   branches: [ master ]
+  #   paths:
+  #     - 'xray/**'
+  #     - '.github/workflows/build-xray.yml'
+  # pull_request:
+  #   branches: [ master ]
+  # UTC +8
+  schedule:
+    - cron: "0 20 */7 * *"
+  workflow_dispatch:
+
+jobs:
+  build-xray:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Set Variables
+        run: |
+          echo "XRAY_PRE_VERSION=$(curl -fsSL https://api.github.com/repos/xtls/xray-core/tags | grep '"name":' | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/v//g;s/,//g;s/ //g')" >> $GITHUB_ENV
+          echo "XRAY_VERSION=$(curl -fsSL https://api.github.com/repos/xtls/xray-core/releases/latest | grep '"tag_name":' | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/v//g;s/,//g;s/ //g')" >> $GITHUB_ENV
+        shell: bash
+
+      - name: Check Out Repo
+        uses: actions/checkout@v3
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v2
+        id: buildx
+
+      - name: Cache Docker layers
+        uses: actions/cache@v3
+        with:
+          path: /tmp/.buildx-cache
+          key: ${{ runner.os }}-buildx-${{ github.sha }}
+          restore-keys: |
+            ${{ runner.os }}-buildx-
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          username: ${{ secrets.DOCKER_HUB_USERNAME }}
+          password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+      - name: Build and push Docker images
+        uses: docker/build-push-action@v3
+        id: docker_build_xray_core_pre
+        with:
+          context: ./xray
+          file: ./xray/Dockerfile
+          push: true
+          tags: |
+            ${{ secrets.DOCKER_HUB_USERNAME }}/xray:${{ env.XRAY_PRE_VERSION }}
+          builder: ${{ steps.buildx.outputs.name }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+
+      - name: Build and push Docker images
+        uses: docker/build-push-action@v3
+        id: docker_build_xray_core
+        with:
+          context: ./xray
+          file: ./xray/Dockerfile.latest
+          push: true
+          tags: |
+            ${{ secrets.DOCKER_HUB_USERNAME }}/xray:latest
+            ${{ secrets.DOCKER_HUB_USERNAME }}/xray:${{ env.XRAY_VERSION }}
+          builder: ${{ steps.buildx.outputs.name }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
+      - name: Image digest
+        run: |
+          echo ${{ steps.docker_build_xray_core_pre.outputs.digest }}
+          echo ${{ steps.docker_build_xray_core.outputs.digest }}