Skip to content

Allow access for non-registered users #934

Allow access for non-registered users

Allow access for non-registered users #934

name: Publish on tag
on:
pull_request:
push:
tags: [v*]
workflow_dispatch:
env:
PAGES_BRANCH: gh-pages
HTTPS_REMOTE: "https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
jobs:
publish:
name: Publish Release
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Dependencies
run: npm i
- name: Set up version
run: |
# Extract package name and version
NPM_PACKAGE_NAME=$(node -p "require('./package.json').name")
NPM_PACKAGE_VERSION=$(node -p "require('./package.json').version")
echo "//registry.npmjs.org/:_authToken=${{ secrets.NODE_AUTH_TOKEN }}" > .npmrc
- name: publish-chain-api
run: |
cd chain-api
npm i
npm run build
# Publish to NPM registry
npm publish --access public
cd ../
- name: publish-chain-test
run: |
cd chain-test
npm i
npm run build
npm publish --access public
cd ../
- name: publish-chain-cli
run: |
cd chain-cli
npm i
npm run build
npm publish --access public
cd ../
- name: publish-chaincode
run: |
cd chaincode
npm i
npm run build
npm publish --access public
cd ../
- name: publish-client
run: |
cd chain-client
npm i
npm run build
npm publish --access public
cd ../
- name: publish-chain-connect
run: |
cd chain-connect
npm i
npm run build
# Publish to NPM registry
npm publish --access public
cd ../
publish-pages:
name: Publish Pages
runs-on: ubuntu-latest
needs: [publish]
steps:
- uses: actions/checkout@v4
- name: Install project dependencies
run: npm install
- name: Generate typedocs
run: |
npm run typedoc-chain-api
npm run typedoc-chain-client
npm run typedoc-chaincode
npm run typedoc-chain-connect
npm run typedoc-chain-test
npm run replace-readme-docs
- name: Install google-chrome
run: |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
- name: Install python3 and pip
run: |
sudo apt-get install -y python3
sudo apt-get install -y python3-pip python3-pillow python3-cffi python3-brotli gcc musl-dev python3-dev
- name: Setup Node.js
uses: actions/setup-node@v3
- name: Install mermaid-cli
run: npm install -g @mermaid-js/mermaid-cli
- name: Install pip packages
run: pip3 install mkdocs==1.5.3 mkdocs-material==9.4.8 mike==1.1.2 beautifulsoup4==4.9.3 setuptools==58.2.0 mkdocs-awesome-pages-plugin==2.9.2
- name: Git config
run: |
git config --global user.email "${GITHUB_ACTOR}"
git config --global user.name "${GITHUB_ACTOR}@gala.games"
- name: Clone mkdocs-with-pdf fixed branch and install
run: |
git clone -b render-mermaid-png https://github.com/Fuerback/mkdocs-with-pdf.git
cd mkdocs-with-pdf
sudo python3 setup.py install
cd ..
- name: Mkdocs build
run: |
mkdocs build
- name: Push a new version of the docs
run: |
git stash
git fetch origin $PAGES_BRANCH && git -b checkout $PAGES_BRANCH origin/$PAGES_BRANCH || git checkout $PAGES_BRANCH || echo "Pages branch not deployed yet."
git checkout $GITHUB_SHA
mike deploy --rebase --prefix docs -r $HTTPS_REMOTE -p -b $PAGES_BRANCH -u ${GITHUB_REF#refs/tags/} latest
mike set-default --rebase --prefix docs -r $HTTPS_REMOTE -p -b $PAGES_BRANCH latest
git checkout $PAGES_BRANCH -- docs/
publish-cli-image:
name: Publish CLI Image
needs: [publish]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
env:
REGISTRY: ghcr.io
IMAGE_NAME: galachain/sdk
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Cache Docker images
uses: ScribeMD/[email protected]
with:
key: docker-${{ runner.os }}-${{ github.ref_name }}
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Make the repository name lowercase
id: lower-repo
shell: pwsh
run: |
"::set-output name=repository::$($env:GITHUB_REPOSITORY.ToLowerInvariant())"
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./chain-cli/docker
push: true
tags: ghcr.io/${{ steps.lower-repo.outputs.repository }}:latest
bump-version:
needs: [publish, publish-cli-image]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
name: Bump SDK Version
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ startsWith(github.ref_name, 'v1.') && 'main-v1' || 'main' }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install tools
run: npm i -g semver
- name: Configure Git
run: |
git config --global user.name "galachain-release-bot"
git config --global user.email "[email protected]"
- name: Set a new version
run: |
VERSION="$(semver "$(< package.json jq -r '.version')" -i)"
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Create a new branch
run: |
TARGET_BRANCH="${{ startsWith(github.ref_name, 'v1.') && 'main-v1' || 'main' }}"
BRANCH_NAME="bump-version-to-$VERSION"
git checkout -b $BRANCH_NAME $TARGET_BRANCH
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
echo "TARGET_BRANCH=$TARGET_BRANCH" >> $GITHUB_ENV
- name: Bump version and commit changes
run: |
./unifyVersions.js $VERSION
npm i
git commit -am "Bump version to $VERSION"
git push --set-upstream origin bump-version-to-$VERSION
- name: Create Pull Request
env:
GH_TOKEN: ${{ secrets.RELEASE_BOT_TOKEN }}
run: gh pr create --title "Bump Version to $VERSION" --body "Bump Version to $VERSION" --label "bump-version-pr" --head "bump-version-to-$VERSION" --base ${{ env.TARGET_BRANCH }}
notify-tag:
needs: [publish, publish-cli-image]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
name: Notify Tag
runs-on: ubuntu-latest
steps:
- name: Trigger GitLab Pipeline
id: trigger
run: |
curl -X POST -H 'Content-type: application/json' --data "{
\"channel\": \"#releases\",
\"username\": \"Tag Reporter Bot\",
\"text\": Galachain SDK ${{ github.ref_name }} Released by ${{ github.actor }}\n${{ github.event.head_commit.message }}
}" ${{ secrets.SLACK_TAG_WEBHOOK_URL }}
update-assets-chaincode:
needs: [publish]
runs-on: ubuntu-latest
name: Update assets chaincode
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
steps:
- name: Trigger GitLab Pipeline
id: trigger
run: |
curl --request POST \
--form token=${{ secrets.GITLAB_PIPELINE_TOKEN }} \
--form ref=main \
--form variables[DEPLOY_NEW_SDK_TAG]="true" \
--form variables[NEW_VERSION_TAG]=${{ github.ref_name }} \
--form variables[GITHUB_AUTHOR]="${{ github.actor }}" \
--form variables[GITHUB_COMMIT_URL]="${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" \
"https://gitlab.com/api/v4/projects/35484791/trigger/pipeline"