Browse Source

CI: new debian build workflow compatible with missing release (#1452)

Loyalsoldier 4 years ago
parent
commit
949253577f
2 changed files with 33 additions and 13 deletions
  1. 31 11
      .github/workflows/deb.yml
  2. 2 2
      release/debian/changelog

+ 31 - 11
.github/workflows/deb.yml

@@ -2,20 +2,14 @@ name: Build debian packages
 
 
 on:
 on:
   workflow_dispatch:
   workflow_dispatch:
-  push:
-    branches:
-      - master
-      - v*
-    paths:
-      - ".github/workflows/deb.yml"
-      - "release/debian/*"
+    inputs:
+      tag:
+        description: "The tag version you want to build. Leave it empty to use the latest one."
   pull_request:
   pull_request:
     types: [opened, synchronize, reopened]
     types: [opened, synchronize, reopened]
     paths:
     paths:
       - ".github/workflows/deb.yml"
       - ".github/workflows/deb.yml"
       - "release/debian/*"
       - "release/debian/*"
-  release:
-    types: [prereleased]
 
 
 jobs:
 jobs:
   package:
   package:
@@ -29,8 +23,34 @@ jobs:
           apt-get update
           apt-get update
           apt-get install -y git wget
           apt-get install -y git wget
 
 
-      - name: Checkout codebase
+      - name: Get tag
+        if: ${{ github.event_name == 'workflow_dispatch' }}
+        id: tag
+        run: |
+          latest_tag=$(curl -sSL --retry 5 "https://api.github.com/repos/v2fly/v2ray-core/releases/latest" | jq .tag_name | awk -F '"' '{print $2}')
+          if [[ -z "${{ github.event.inputs.tag }}" ]]; then
+            echo "Use the latest release tag of v2ray-core: ${latest_tag}"
+            echo ::set-output name=tag::${latest_tag}
+          else
+            echo "Use tag: ${{ github.event.inputs.tag }}"
+            echo ::set-output name=tag::${{ github.event.inputs.tag }}
+          fi
+
+      - name: Checkout codebase on a specific tag for `workflow_dispatch` event
+        if: ${{ github.event_name == 'workflow_dispatch' }}
         uses: actions/checkout@v2
         uses: actions/checkout@v2
+        with:
+          ref: ${{ steps.tag.outputs.tag }}
+          fetch-depth: 0
+
+      - name: Checkout codebase on the triggered commit for other events
+        if: ${{ github.event_name != 'workflow_dispatch' }}
+        uses: actions/checkout@v2
+
+      - name: Override file `release/debian/changelog` to get the latest CHANGELOG
+        if: ${{ github.event_name == 'workflow_dispatch' }}
+        run: |
+          curl --fail "https://raw.githubusercontent.com/v2fly/v2ray-core/${github.ref_name}/release/debian/changelog" > release/debian/changelog
 
 
       - name: Download geo files
       - name: Download geo files
         run: |
         run: |
@@ -59,7 +79,7 @@ jobs:
           path: ./*.deb
           path: ./*.deb
 
 
       - name: Setup Repository
       - name: Setup Repository
-        if: ${{ github.event_name == 'release' || github.event_name == 'workflow_dispatch' }}
+        if: ${{ github.event_name == 'workflow_dispatch' }}
         run: |
         run: |
           git clone https://github.com/v2fly/debian.git archive
           git clone https://github.com/v2fly/debian.git archive
           echo ${{ secrets.DEBIAN_GPG_PRIVATE }} | base64 -d > private.key
           echo ${{ secrets.DEBIAN_GPG_PRIVATE }} | base64 -d > private.key

+ 2 - 2
release/debian/changelog

@@ -1,10 +1,10 @@
-v2ray-core (4.44.0-1) unstable; urgency=medium
+v2ray-core (4.44.0-2) unstable; urgency=medium
 
 
   * Fix DoS attack vulnerability in CommandSwitchAccountFactory
   * Fix DoS attack vulnerability in CommandSwitchAccountFactory
   * Fix: apply timeout to DNS outbound
   * Fix: apply timeout to DNS outbound
   * More details in https://github.com/v2fly/v2ray-core/releases/tag/v4.44.0
   * More details in https://github.com/v2fly/v2ray-core/releases/tag/v4.44.0
 
 
- -- V2Fly <dev@v2fly.org>  Mon, 6 Dec 2021 21:30:00 +0800
+ -- V2Fly <dev@v2fly.org>  Mon, 6 Dec 2021 22:30:00 +0800
 
 
 v2ray-core (4.42.2-2) unstable; urgency=medium
 v2ray-core (4.42.2-2) unstable; urgency=medium