@@ -3,68 +3,119 @@ format_version: '25'
33default_step_lib_source : https://github.com/bitrise-io/bitrise-steplib.git
44project_type : other
55
6- workflows :
7- upload- release-assets :
6+ pipelines :
7+ release :
88 triggers :
99 tag :
10- - name : ' *'
10+ - name : ' v*.*.*-bitrise'
11+ stages :
12+ - build : {}
13+ - upload-and-deploy : {}
14+
15+ stages :
16+ build :
17+ workflows :
18+ - build-linux : {}
19+ - build-macos : {}
20+ upload-and-deploy :
21+ workflows :
22+ - upload-release-assets : {}
23+
24+ workflows :
25+ build-linux :
1126 steps :
27+ - git-clone@8 : {}
1228 - script@1 :
13- title : Download GitHub release assets
29+ title : Build & Package runner (linux-x64)
1430 inputs :
1531 - content : |
1632 #!/usr/bin/env bash
1733 set -euo pipefail
18-
19- echo "--- Fetching release for tag: ${BITRISE_GIT_TAG}"
20-
21- RELEASE_JSON=$(curl -sf \
22- -H "Accept: application/vnd.github+json" \
23- "https://api.github.com/repos/bitrise-io/github-runner/releases/tags/${BITRISE_GIT_TAG}")
24-
25- RELEASE_NAME=$(echo "${RELEASE_JSON}" | jq -r '.name')
26- echo "Found release: ${RELEASE_NAME}"
27-
28- ASSETS=$(echo "${RELEASE_JSON}" | jq -c '.assets[]')
29-
30- if [ -z "${ASSETS}" ]; then
31- echo "No assets found for release ${BITRISE_GIT_TAG}"
32- exit 1
33- fi
34-
35- DOWNLOAD_DIR="${BITRISE_SOURCE_DIR}/release-assets"
36- mkdir -p "${DOWNLOAD_DIR}"
37-
38- echo "${ASSETS}" | while IFS= read -r asset; do
39- NAME=$(echo "${asset}" | jq -r '.name')
40- DOWNLOAD_URL=$(echo "${asset}" | jq -r '.url')
41-
42- echo "Downloading: ${NAME}"
43- curl -sfL \
44- -H "Accept: application/octet-stream" \
45- "${DOWNLOAD_URL}" \
46- -o "${DOWNLOAD_DIR}/${NAME}"
47- done
48-
49- echo "Downloaded assets:"
50- ls -lh "${DOWNLOAD_DIR}"
51-
52- envman add --key RELEASE_ASSETS_DIR --value "${DOWNLOAD_DIR}"
53- envman add --key RELEASE_TAG --value "${BITRISE_GIT_TAG%-bitrise}"
34+ cd "${BITRISE_SOURCE_DIR}/src"
35+ ./dev.sh layout Release linux-x64
36+ ./dev.sh package Release linux-x64
37+
38+ RUNNER_VERSION=$(cat runnerversion)
39+ PACKAGE_PATH="${BITRISE_SOURCE_DIR}/_package/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz"
40+
41+ echo "Built package: ${PACKAGE_PATH}"
42+ ls -lh "${PACKAGE_PATH}"
43+
44+ envman add --key LINUX_PACKAGE_PATH --value "${PACKAGE_PATH}"
45+ - deploy-to-bitrise-io@2 :
46+ inputs :
47+ - pipeline_intermediate_files : " $LINUX_PACKAGE_PATH:BITRISE_LINUX_PACKAGE_PATH"
48+ meta :
49+ bitrise.io :
50+ stack : ubuntu-noble-24.04-bitrise-2025-base
51+ machine_type_id : g2.linux.medium
52+
53+ build-macos :
54+ steps :
55+ - git-clone@8 : {}
56+ - script@1 :
57+ title : Build & Package runner (osx-arm64)
58+ inputs :
59+ - content : |
60+ #!/usr/bin/env bash
61+ set -euo pipefail
62+ cd "${BITRISE_SOURCE_DIR}/src"
63+ ./dev.sh layout Release osx-arm64
64+ ./dev.sh package Release osx-arm64
65+
66+ RUNNER_VERSION=$(cat runnerversion)
67+ PACKAGE_PATH="${BITRISE_SOURCE_DIR}/_package/actions-runner-osx-arm64-${RUNNER_VERSION}.tar.gz"
68+
69+ echo "Built package: ${PACKAGE_PATH}"
70+ ls -lh "${PACKAGE_PATH}"
71+
72+ envman add --key MACOS_PACKAGE_PATH --value "${PACKAGE_PATH}"
73+ - deploy-to-bitrise-io@2 :
74+ inputs :
75+ - pipeline_intermediate_files : " $MACOS_PACKAGE_PATH:BITRISE_MACOS_PACKAGE_PATH"
76+ meta :
77+ bitrise.io :
78+ stack : osx-xcode-16.2.x-edge
79+ machine_type_id : g2.mac.medium
80+
81+ upload-release-assets :
82+ steps :
83+ - pull-intermediate-files@1 :
84+ inputs :
85+ - artifact_sources : " .*"
86+ - script@1 :
87+ title : Prepare release assets
88+ inputs :
89+ - content : |
90+ #!/usr/bin/env bash
91+ set -euo pipefail
92+
93+ RELEASE_ASSETS_DIR="${BITRISE_SOURCE_DIR}/release-assets"
94+ mkdir -p "${RELEASE_ASSETS_DIR}"
95+
96+ cp "${BITRISE_LINUX_PACKAGE_PATH}" "${RELEASE_ASSETS_DIR}/"
97+ cp "${BITRISE_MACOS_PACKAGE_PATH}" "${RELEASE_ASSETS_DIR}/"
98+
99+ echo "Release assets:"
100+ ls -lh "${RELEASE_ASSETS_DIR}"
101+
102+ RELEASE_TAG="${BITRISE_GIT_TAG%-bitrise}"
103+ envman add --key RELEASE_ASSETS_DIR --value "${RELEASE_ASSETS_DIR}"
104+ envman add --key RELEASE_TAG --value "${RELEASE_TAG}"
54105
55106 - script@1 :
56107 title : Upload assets to R2
57108 inputs :
58109 - content : |
59110 #!/usr/bin/env bash
60111 set -euo pipefail
61-
112+
62113 echo "--- Configuring AWS CLI for R2"
63-
114+
64115 export AWS_ACCESS_KEY_ID="${R2_ACCESS_KEY_ID}"
65116 export AWS_SECRET_ACCESS_KEY="${R2_SECRET_ACCESS_KEY}"
66117 export AWS_DEFAULT_REGION="auto"
67-
118+
68119 echo "--- Uploading assets to s3://${R2_BUCKET}/"
69120
70121 for file in "${RELEASE_ASSETS_DIR}"/*; do
@@ -84,19 +135,19 @@ workflows:
84135 - content : |
85136 #!/usr/bin/env bash
86137 set -euo pipefail
87-
138+
88139 echo "--- Authenticating with GCP"
89-
140+
90141 echo "${GCS_SERVICE_ACCOUNT_JSON}" | base64 -d > /tmp/gcs-key.json
91142 gcloud auth activate-service-account --key-file=/tmp/gcs-key.json
92-
143+
93144 echo "--- Uploading assets to gs://${GCS_BUCKET}/"
94145
95146 gsutil -m cp "${RELEASE_ASSETS_DIR}"/* "gs://${GCS_BUCKET}/"
96147
97148 echo "--- Upload complete. Verifying:"
98149 gsutil ls -l "gs://${GCS_BUCKET}/"
99-
150+
100151 rm -f /tmp/gcs-key.json
101152
102153 - script@1 :
@@ -158,7 +209,7 @@ workflows:
158209
159210 rm -rf "${REPO_DIR}"
160211
161- meta :
162- bitrise.io :
163- stack : ubuntu-noble-24.04-bitrise-2025-base
164- machine_type_id : g2.linux.medium
212+ meta :
213+ bitrise.io :
214+ stack : ubuntu-noble-24.04-bitrise-2025-base
215+ machine_type_id : g2.linux.medium
0 commit comments