mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-27 23:47:39 +01:00
ci - decouple source_metadata.json generation from deploy
This commit is contained in:
25
.github/workflows/alpha.yml
vendored
25
.github/workflows/alpha.yml
vendored
@@ -179,21 +179,14 @@ jobs:
|
|||||||
token: ${{ secrets.CROSS_REPO_PUSH_KEY }}
|
token: ${{ secrets.CROSS_REPO_PUSH_KEY }}
|
||||||
path: "SideStore/apps-v2.json"
|
path: "SideStore/apps-v2.json"
|
||||||
|
|
||||||
# --------------------------------------------------
|
- name: Generate Metadata
|
||||||
# deploy
|
|
||||||
# --------------------------------------------------
|
|
||||||
- name: Deploy
|
|
||||||
if: env.DEPLOY_KEY != ''
|
|
||||||
run: |
|
run: |
|
||||||
python3 scripts/ci/workflow.py dump-project-settings
|
python3 scripts/ci/workflow.py dump-project-settings
|
||||||
PRODUCT_NAME=$(python3 scripts/ci/workflow.py read-product-name)
|
PRODUCT_NAME=$(python3 scripts/ci/workflow.py read-product-name)
|
||||||
BUNDLE_ID=$(python3 scripts/ci/workflow.py read-bundle-id)
|
BUNDLE_ID=$(python3 scripts/ci/workflow.py read-bundle-id)
|
||||||
SOURCE_JSON="_includes/source.json"
|
|
||||||
IPA_NAME="$PRODUCT_NAME.ipa"
|
IPA_NAME="$PRODUCT_NAME.ipa"
|
||||||
|
|
||||||
python3 scripts/ci/workflow.py deploy \
|
python3 scripts/ci/workflow.py generate-metadata \
|
||||||
SideStore/apps-v2.json \
|
|
||||||
"$SOURCE_JSON" \
|
|
||||||
"$CHANNEL" \
|
"$CHANNEL" \
|
||||||
"$SHORT_COMMIT" \
|
"$SHORT_COMMIT" \
|
||||||
"$MARKETING_VERSION" \
|
"$MARKETING_VERSION" \
|
||||||
@@ -202,8 +195,20 @@ jobs:
|
|||||||
"$IPA_NAME" \
|
"$IPA_NAME" \
|
||||||
"$LAST_SUCCESSFUL_COMMIT"
|
"$LAST_SUCCESSFUL_COMMIT"
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
if: env.DEPLOY_KEY != ''
|
||||||
|
run: |
|
||||||
|
SOURCE_JSON="_includes/source.json"
|
||||||
|
|
||||||
|
python3 scripts/ci/workflow.py deploy \
|
||||||
|
SideStore/apps-v2.json \
|
||||||
|
"$SOURCE_JSON" \
|
||||||
|
"$CHANNEL" \
|
||||||
|
"$MARKETING_VERSION"
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
# upload release
|
# upload release to GH
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
- name: Upload Release
|
- name: Upload Release
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
26
.github/workflows/nightly.yml
vendored
26
.github/workflows/nightly.yml
vendored
@@ -217,21 +217,15 @@ jobs:
|
|||||||
token: ${{ secrets.CROSS_REPO_PUSH_KEY }}
|
token: ${{ secrets.CROSS_REPO_PUSH_KEY }}
|
||||||
path: "SideStore/apps-v2.json"
|
path: "SideStore/apps-v2.json"
|
||||||
|
|
||||||
# --------------------------------------------------
|
- name: Generate Metadata
|
||||||
# deploy
|
if: steps.build_gate.outputs.should_skip != 'true'
|
||||||
# --------------------------------------------------
|
|
||||||
- name: Deploy
|
|
||||||
if: steps.build_gate.outputs.should_skip != 'true' && env.DEPLOY_KEY != ''
|
|
||||||
run: |
|
run: |
|
||||||
python3 scripts/ci/workflow.py dump-project-settings
|
python3 scripts/ci/workflow.py dump-project-settings
|
||||||
PRODUCT_NAME=$(python3 scripts/ci/workflow.py read-product-name)
|
PRODUCT_NAME=$(python3 scripts/ci/workflow.py read-product-name)
|
||||||
BUNDLE_ID=$(python3 scripts/ci/workflow.py read-bundle-id)
|
BUNDLE_ID=$(python3 scripts/ci/workflow.py read-bundle-id)
|
||||||
SOURCE_JSON="_includes/source.json"
|
|
||||||
IPA_NAME="$PRODUCT_NAME.ipa"
|
IPA_NAME="$PRODUCT_NAME.ipa"
|
||||||
|
|
||||||
python3 scripts/ci/workflow.py deploy \
|
python3 scripts/ci/workflow.py generate-metadata \
|
||||||
SideStore/apps-v2.json \
|
|
||||||
"$SOURCE_JSON" \
|
|
||||||
"$CHANNEL" \
|
"$CHANNEL" \
|
||||||
"$SHORT_COMMIT" \
|
"$SHORT_COMMIT" \
|
||||||
"$MARKETING_VERSION" \
|
"$MARKETING_VERSION" \
|
||||||
@@ -240,8 +234,20 @@ jobs:
|
|||||||
"$IPA_NAME" \
|
"$IPA_NAME" \
|
||||||
"$LAST_SUCCESSFUL_COMMIT"
|
"$LAST_SUCCESSFUL_COMMIT"
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
if: steps.build_gate.outputs.should_skip != 'true' && env.DEPLOY_KEY != ''
|
||||||
|
run: |
|
||||||
|
SOURCE_JSON="_includes/source.json"
|
||||||
|
|
||||||
|
python3 scripts/ci/workflow.py deploy \
|
||||||
|
SideStore/apps-v2.json \
|
||||||
|
"$SOURCE_JSON" \
|
||||||
|
"$CHANNEL" \
|
||||||
|
"$MARKETING_VERSION"
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
# upload release
|
# upload release to GH
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
- name: Upload Release
|
- name: Upload Release
|
||||||
if: steps.build_gate.outputs.should_skip != 'true'
|
if: steps.build_gate.outputs.should_skip != 'true'
|
||||||
|
|||||||
17
.github/workflows/stable.yml
vendored
17
.github/workflows/stable.yml
vendored
@@ -16,6 +16,7 @@ jobs:
|
|||||||
runs-on: macos-26
|
runs-on: macos-26
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
RELEASE_NAME: Stable
|
RELEASE_NAME: Stable
|
||||||
CHANNEL: stable
|
CHANNEL: stable
|
||||||
UPSTREAM_CHANNEL: ""
|
UPSTREAM_CHANNEL: ""
|
||||||
@@ -103,6 +104,22 @@ jobs:
|
|||||||
name: SideStore-${{ env.MARKETING_VERSION }}-dSYMs.zip
|
name: SideStore-${{ env.MARKETING_VERSION }}-dSYMs.zip
|
||||||
path: SideStore.dSYMs.zip
|
path: SideStore.dSYMs.zip
|
||||||
|
|
||||||
|
- name: Generate Metadata
|
||||||
|
run: |
|
||||||
|
python3 scripts/ci/workflow.py dump-project-settings
|
||||||
|
PRODUCT_NAME=$(python3 scripts/ci/workflow.py read-product-name)
|
||||||
|
BUNDLE_ID=$(python3 scripts/ci/workflow.py read-bundle-id)
|
||||||
|
IPA_NAME="$PRODUCT_NAME.ipa"
|
||||||
|
|
||||||
|
python3 scripts/ci/workflow.py generate-metadata \
|
||||||
|
"$CHANNEL" \
|
||||||
|
"$SHORT_COMMIT" \
|
||||||
|
"$MARKETING_VERSION" \
|
||||||
|
"$CHANNEL" \
|
||||||
|
"$BUNDLE_ID" \
|
||||||
|
"$IPA_NAME" \
|
||||||
|
"$LAST_SUCCESSFUL_COMMIT"
|
||||||
|
|
||||||
- name: Upload to releases
|
- name: Upload to releases
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -246,22 +246,13 @@ def retrieve_release_notes(tag):
|
|||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
# DEPLOY SOURCE.JSON
|
# DEPLOY SOURCE.JSON
|
||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
|
def generate_metadata(release_tag, short_commit, marketing_version, channel, bundle_id, ipa_name, last_successful_commit=None):
|
||||||
def deploy(repo, source_json, release_tag, short_commit, marketing_version, channel, bundle_id, ipa_name, last_successful_commit=None):
|
|
||||||
repo = (ROOT / repo).resolve()
|
|
||||||
ipa_path = ROOT / ipa_name
|
ipa_path = ROOT / ipa_name
|
||||||
source_json_path = repo / source_json
|
|
||||||
metadata = 'source-metadata.json'
|
metadata = 'source-metadata.json'
|
||||||
|
|
||||||
if not repo.exists():
|
|
||||||
raise SystemExit(f"{repo} repo missing")
|
|
||||||
|
|
||||||
if not ipa_path.exists():
|
if not ipa_path.exists():
|
||||||
raise SystemExit(f"{ipa_path} missing")
|
raise SystemExit(f"{ipa_path} missing")
|
||||||
|
|
||||||
if not source_json_path.exists():
|
|
||||||
raise SystemExit(f"{source_json} missing inside repo")
|
|
||||||
|
|
||||||
cmd = (
|
cmd = (
|
||||||
f"python3 {SCRIPTS}/generate_source_metadata.py "
|
f"python3 {SCRIPTS}/generate_source_metadata.py "
|
||||||
f"--repo-root {ROOT} "
|
f"--repo-root {ROOT} "
|
||||||
@@ -276,12 +267,26 @@ def deploy(repo, source_json, release_tag, short_commit, marketing_version, chan
|
|||||||
f"--bundle-id {bundle_id}"
|
f"--bundle-id {bundle_id}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# pass only if provided
|
|
||||||
if last_successful_commit:
|
if last_successful_commit:
|
||||||
cmd += f" --last-successful-commit {last_successful_commit}"
|
cmd += f" --last-successful-commit {last_successful_commit}"
|
||||||
|
|
||||||
run(cmd)
|
run(cmd)
|
||||||
|
|
||||||
|
def deploy(repo, source_json, release_tag, marketing_version):
|
||||||
|
repo = (ROOT / repo).resolve()
|
||||||
|
source_json_path = repo / source_json
|
||||||
|
metadata = 'source-metadata.json'
|
||||||
|
|
||||||
|
if not repo.exists():
|
||||||
|
raise SystemExit(f"{repo} repo missing")
|
||||||
|
|
||||||
|
if not (repo / ".git").exists():
|
||||||
|
print("Repo is not a git repository, skipping deploy", file=sys.stderr)
|
||||||
|
return
|
||||||
|
|
||||||
|
if not source_json_path.exists():
|
||||||
|
raise SystemExit(f"{source_json} missing inside repo")
|
||||||
|
|
||||||
run("git config user.name 'GitHub Actions'", check=False)
|
run("git config user.name 'GitHub Actions'", check=False)
|
||||||
run("git config user.email 'github-actions@github.com'", check=False)
|
run("git config user.email 'github-actions@github.com'", check=False)
|
||||||
|
|
||||||
@@ -313,6 +318,7 @@ def deploy(repo, source_json, release_tag, short_commit, marketing_version, chan
|
|||||||
else:
|
else:
|
||||||
raise SystemExit("Deploy push failed after retries")
|
raise SystemExit("Deploy push failed after retries")
|
||||||
|
|
||||||
|
|
||||||
def last_successful_commit(workflow, branch):
|
def last_successful_commit(workflow, branch):
|
||||||
import json
|
import json
|
||||||
|
|
||||||
@@ -495,10 +501,12 @@ COMMANDS = {
|
|||||||
"last-successful-commit" : (last_successful_commit, 2, "<workflow_name> <branch>"),
|
"last-successful-commit" : (last_successful_commit, 2, "<workflow_name> <branch>"),
|
||||||
"release-notes" : (release_notes, 1, "<tag>"),
|
"release-notes" : (release_notes, 1, "<tag>"),
|
||||||
"retrieve-release-notes" : (retrieve_release_notes, 1, "<tag>"),
|
"retrieve-release-notes" : (retrieve_release_notes, 1, "<tag>"),
|
||||||
"deploy" : (deploy, 9,
|
"generate-metadata" : (generate_metadata, 7,
|
||||||
"<repo> <source_json> <release_tag> <short_commit> <marketing_version> <channel> <bundle_id> <ipa_name> [last_successful_commit]"),
|
"<release_tag> <short_commit> <marketing_version> <channel> <bundle_id> <ipa_name> [last_successful_commit]"),
|
||||||
"upload-release" : (upload_release, 5, "<release_name> <release_tag> <commit_sha> <repo> <upstream_tag_recommended> [is_stable]"),
|
"deploy" : (deploy, 4,
|
||||||
}
|
"<repo> <source_json> <release_tag> <marketing_version>"),
|
||||||
|
"upload-release" : (upload_release, 5,
|
||||||
|
"<release_name> <release_tag> <commit_sha> <repo> <upstream_tag_recommended> [is_stable]"),}
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
def usage():
|
def usage():
|
||||||
|
|||||||
Reference in New Issue
Block a user