Skip to content

fix: Fix CI

fix: Fix CI #102

Workflow file for this run

name: CI
on:
- push
- pull_request
- workflow_dispatch
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
submodule-matrix: ${{ steps.discover-submodules.outputs.submodule-matrix }}
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: recursive
persist-credentials: true
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install pnpm
run: npm install -g pnpm
- name: Discover submodules
id: discover-submodules
run: |
sudo node ./scripts/discover-submodules.js > submodules.json
echo "Original Submodule JSON content:"
cat submodules.json
# Transform JSON into a list of 'owner/repo' strings
jq -c '[.[] | "\(.owner)/\(.repo)"]' submodules.json > transformed-submodules.json
echo "Transformed Submodule JSON content:"
cat transformed-submodules.json
# Set the output for the submodule matrix
echo "::set-output name=submodule-matrix::$(cat transformed-submodules.json)"
make:
needs: prepare
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
repository: ${{ fromJson(needs.prepare.outputs.submodule-matrix) }}
steps:
- name: Checkout specific submodule repository
uses: actions/checkout@v2
with:
repository: ${{ matrix.repository }}
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install Google Cloud SDK
run: |
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates gnupg curl
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get update && sudo apt-get install google-cloud-cli
- name: Authenticate to Google Cloud
env:
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
run: |
echo "${GCP_SERVICE_ACCOUNT_KEY}" > gcloud-key.json
gcloud auth activate-service-account --key-file=gcloud-key.json
gcloud config set project steam-brew
- name: Install pnpm
run: npm install -g pnpm
- name: Install dependencies and build plugin
run: |
ls -R
pnpm install
pnpm run build
env:
NODE_ENV: production
- name: Copy files to dist
id: copy-files-to-dist
run: |
ls -R
mkdir -p dist
cp "plugin.json" dist/plugin.json 2>/dev/null || { echo "::error::plugin.json was not found. It is required for plugins to have."; exit 1; }
cp "requirements.txt" dist/requirements.txt 2>/dev/null || echo "::warning::requirements.txt not found, skipping."
cp "README.md" dist/README.md 2>/dev/null || echo "::warning::README.md not found, skipping."
cp "README" dist/README 2>/dev/null || echo "::warning::README not found, skipping."
backend=$(jq -r '.backend' plugin.json)
if [ "$backend" != "null" ]; then
cp -r "$backend" ./dist/"$backend"
fi
include=$(jq -r '.include // [] | .[]' plugin.json)
if [ -z "$include" ]; then
echo "::notice::No additional files to include."
else
echo "::notice::Including additional files: $include"
for item in $include; do
echo "Processing $item"
cp -r "./$item" "./dist/$item"
done
fi
echo "::notice::Computing plugin metadata..."
echo "{\"commit\": \"$(git rev-parse HEAD)\", \"id\": \"$(git rev-list --max-parents=0 HEAD)\"}" > dist/metadata.json
id=$(jq -r '.id' dist/metadata.json)
echo "::set-output name=id::$id" # Set the id as an output variable
cd dist
zip -r "$id.zip" .
echo "::notice::Successfully built plugin."
echo "::notice::Uploading plugin to Google Cloud Storage..."
gsutil cp "$id.zip" gs://steam-brew.firebasestorage.app/plugins/"$id.zip"
echo "::notice::Successfully uploaded plugin to Google Cloud Storage."