Align offline package naming and structure

This commit is contained in:
shenlan 2025-10-02 20:18:27 +08:00
parent c9449f16eb
commit 8381076e1a

View File

@ -30,6 +30,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
NERDCTL_VERSION: "2.0.3" NERDCTL_VERSION: "2.0.3"
OFFLINE_DIR: gitea-offline-package
outputs: outputs:
chart_version: ${{ steps.resolve.outputs.chart_version }} chart_version: ${{ steps.resolve.outputs.chart_version }}
steps: steps:
@ -65,15 +66,15 @@ jobs:
- name: Prepare directories - name: Prepare directories
run: | run: |
set -euo pipefail set -euo pipefail
rm -rf offline-installer rm -rf "${OFFLINE_DIR}"
mkdir -p offline-installer/{images,charts,scripts,metadata} mkdir -p "${OFFLINE_DIR}"/{images,charts,scripts,metadata}
- name: Stage installer script - name: Stage installer script
env: env:
CHART_VERSION: ${{ steps.resolve.outputs.chart_version }} CHART_VERSION: ${{ steps.resolve.outputs.chart_version }}
run: | run: |
set -euo pipefail set -euo pipefail
cat <<'SCRIPT' > offline-installer/scripts/install-gitea.sh cat <<'SCRIPT' > "${OFFLINE_DIR}/scripts/install-gitea.sh"
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
@ -104,8 +105,8 @@ helm upgrade --install "${RELEASE_NAME}" "${CHART_DIR}" \
--create-namespace \ --create-namespace \
"$@" "$@"
SCRIPT SCRIPT
chmod +x offline-installer/scripts/install-gitea.sh chmod +x "${OFFLINE_DIR}/scripts/install-gitea.sh"
cat <<EOFMETA > offline-installer/metadata/INFO cat <<EOFMETA > "${OFFLINE_DIR}/metadata/INFO"
chart: gitea-charts/gitea chart: gitea-charts/gitea
chart_version: ${CHART_VERSION} chart_version: ${CHART_VERSION}
created_at: $(date -u +%Y-%m-%dT%H:%M:%SZ) created_at: $(date -u +%Y-%m-%dT%H:%M:%SZ)
@ -115,7 +116,7 @@ EOFMETA
run: | run: |
set -euo pipefail set -euo pipefail
wget https://github.com/containerd/nerdctl/releases/download/v${NERDCTL_VERSION}/nerdctl-${NERDCTL_VERSION}-linux-${{ matrix.arch }}.tar.gz \ wget https://github.com/containerd/nerdctl/releases/download/v${NERDCTL_VERSION}/nerdctl-${NERDCTL_VERSION}-linux-${{ matrix.arch }}.tar.gz \
-O offline-installer/nerdctl.tar.gz -O "${OFFLINE_DIR}/nerdctl.tar.gz"
- name: Pull & export required images - name: Pull & export required images
env: env:
@ -137,7 +138,7 @@ EOFMETA
continue continue
fi fi
safe=$(echo "$img" | tr '/:' '-_') safe=$(echo "$img" | tr '/:' '-_')
docker save "$img" -o "offline-installer/images/${safe}.tar" docker save "$img" -o "${OFFLINE_DIR}/images/${safe}.tar"
done done
- name: Download Helm chart - name: Download Helm chart
@ -145,19 +146,19 @@ EOFMETA
CHART_VERSION: ${{ steps.resolve.outputs.chart_version }} CHART_VERSION: ${{ steps.resolve.outputs.chart_version }}
run: | run: |
set -euo pipefail set -euo pipefail
helm pull gitea-charts/gitea --version "${CHART_VERSION}" --untar --untardir offline-installer/charts helm pull gitea-charts/gitea --version "${CHART_VERSION}" --untar --untardir "${OFFLINE_DIR}/charts"
- name: Package offline installer - name: Package offline installer
run: | run: |
set -euo pipefail set -euo pipefail
tar -czf offline-setup-gitea-${{ matrix.arch }}.tar.gz -C offline-installer . tar -czf offline-package-gitea-${{ matrix.arch }}.tar.gz "${OFFLINE_DIR}"
ls -lh offline-setup-gitea-${{ matrix.arch }}.tar.gz ls -lh offline-package-gitea-${{ matrix.arch }}.tar.gz
- name: Upload artifact - name: Upload artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: offline-setup-gitea-${{ matrix.arch }} name: offline-package-gitea-${{ matrix.arch }}
path: offline-setup-gitea-${{ matrix.arch }}.tar.gz path: offline-package-gitea-${{ matrix.arch }}.tar.gz
test-offline-installer: test-offline-installer:
needs: build-offline-installer needs: build-offline-installer
@ -169,14 +170,14 @@ EOFMETA
- name: Download artifact - name: Download artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: offline-setup-gitea-${{ matrix.arch }} name: offline-package-gitea-${{ matrix.arch }}
path: offline-test path: offline-test
- name: Verify offline package integrity - name: Verify offline package integrity
run: | run: |
set -euo pipefail set -euo pipefail
cd offline-test cd offline-test
tar -tzf offline-setup-gitea-${{ matrix.arch }}.tar.gz > /dev/null tar -tzf offline-package-gitea-${{ matrix.arch }}.tar.gz > /dev/null
publish-release: publish-release:
needs: test-offline-installer needs: test-offline-installer
@ -204,13 +205,13 @@ EOFMETA
- name: Download amd64 artifact - name: Download amd64 artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: offline-setup-gitea-amd64 name: offline-package-gitea-amd64
path: release-artifacts/amd64 path: release-artifacts/amd64
- name: Download arm64 artifact - name: Download arm64 artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: offline-setup-gitea-arm64 name: offline-package-gitea-arm64
path: release-artifacts/arm64 path: release-artifacts/arm64
- name: Upload offline installers to GitHub Release - name: Upload offline installers to GitHub Release
@ -218,8 +219,8 @@ EOFMETA
with: with:
tag_name: ${{ env.TAG_NAME }} tag_name: ${{ env.TAG_NAME }}
files: | files: |
release-artifacts/amd64/offline-setup-gitea-amd64.tar.gz release-artifacts/amd64/offline-package-gitea-amd64.tar.gz
release-artifacts/arm64/offline-setup-gitea-arm64.tar.gz release-artifacts/arm64/offline-package-gitea-arm64.tar.gz
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -244,8 +245,8 @@ EOFMETA
ssh -i ~/.ssh/id_rsa "${RSYNC_SSH_USER}@${VPS_HOST}" "mkdir -p '${REMOTE_DIR}'" ssh -i ~/.ssh/id_rsa "${RSYNC_SSH_USER}@${VPS_HOST}" "mkdir -p '${REMOTE_DIR}'"
echo "Rsync -> ${VPS_HOST}:${REMOTE_DIR}/" echo "Rsync -> ${VPS_HOST}:${REMOTE_DIR}/"
rsync -av -e "ssh -i ~/.ssh/id_rsa" \ rsync -av -e "ssh -i ~/.ssh/id_rsa" \
release-artifacts/amd64/offline-setup-gitea-amd64.tar.gz \ release-artifacts/amd64/offline-package-gitea-amd64.tar.gz \
release-artifacts/arm64/offline-setup-gitea-arm64.tar.gz \ release-artifacts/arm64/offline-package-gitea-arm64.tar.gz \
"${RSYNC_SSH_USER}@${VPS_HOST}:${REMOTE_DIR}/" "${RSYNC_SSH_USER}@${VPS_HOST}:${REMOTE_DIR}/"
retention: retention: