Update version.json #64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release to Github and Artifact | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
paths: | |
- "version.json" | |
jobs: | |
upload_artifact: | |
name: upload_artifact | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
name: Check out code | |
- name: Version convert | |
id: convert_version | |
run: | | |
version=$(jq -r '.version' version.json) | |
version_core=${version%%-*} | |
echo "VERSION=$version" >> $GITHUB_OUTPUT | |
echo "VERSION_CORE=$version_core" >> $GITHUB_OUTPUT | |
if [[ $version == *-* ]]; then | |
echo "rc release version" | |
echo "CHANNEL=dev" >> $GITHUB_OUTPUT | |
else | |
echo "release version" | |
echo "CHANNEL=release" >> $GITHUB_OUTPUT | |
fi | |
- name: Update CHANGELOG.md | |
id: update_data | |
run: | | |
changelog=$(cat changelog_latest.md) | |
echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT | |
echo "$changelog" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
current_date=$(date +%Y-%m-%d) | |
printf "## ${{ steps.convert_version.outputs.VERSION }} release on $current_date\n$changelog\n$(cat CHANGELOG.md)" > temp.txt | |
mv temp.txt CHANGELOG.md | |
- name: Create Zip Archive | |
run: | | |
mkdir websoft9 artifacts | |
cp -r docker websoft9 | |
cp -r cockpit websoft9 | |
cp -r scripts websoft9 | |
cp -r install websoft9 | |
cp -r docs websoft9 | |
cp -r systemd websoft9 | |
cp *.md websoft9 | |
cp version.json websoft9 | |
zip -r websoft9-${{ steps.convert_version.outputs.VERSION_CORE }}.zip websoft9 | |
cp websoft9-${{ steps.convert_version.outputs.VERSION_CORE }}.zip artifacts | |
cp install/install.sh artifacts | |
cp version.json artifacts | |
cp CHANGELOG.md artifacts | |
cp artifacts/websoft9-${{ steps.convert_version.outputs.VERSION_CORE }}.zip artifacts/websoft9-latest.zip | |
- name: Upload To cloudflare r2 | |
uses: ryand56/r2-upload-action@latest | |
with: | |
r2-account-id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
r2-access-key-id: ${{ secrets.CLOUDFLARE_SECRET_ID }} | |
r2-secret-access-key: ${{ secrets.CLOUDFLARE_SECRET_KEY }} | |
r2-bucket: artifact | |
source-dir: artifacts | |
destination-dir: ./${{ steps.convert_version.outputs.CHANNEL }}/websoft9 | |
- name: Create Github Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
version.json | |
CHANGELOG.md | |
tag_name: ${{ steps.convert_version.outputs.VERSION }} | |
name: ${{ steps.convert_version.outputs.VERSION }} | |
body: ${{ steps.update_data.outputs.CHANGELOG }} | |
draft: false | |
prerelease: false | |
apidocs: | |
needs: upload_artifact | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Check out code | |
- name: Get version | |
run: | | |
version=$(grep -Po '(?<=LABEL version=").*?(?=")' docker/apphub/Dockerfile) | |
echo $version | |
real_version=${version%%-*} | |
echo "VERSION=$version" >> $GITHUB_ENV | |
- name: Download redoc.standalone.js | |
run: wget -O apphub/apidocs/redoc.standalone.js https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js | |
- name: Run Docker container and get openapi.json | |
run: | | |
docker run -d --name apphub -p 8080:8080 websoft9dev/apphub:${{ env.VERSION }} | |
sleep 5 | |
max_attempts=10 | |
url="http://localhost:8080/openapi.json" | |
for attempt in $(seq 1 $max_attempts); do | |
echo "Attempt #$attempt to download $url..." | |
if wget -O apphub/apidocs/openapi.json "$url"; then | |
echo "Successfully downloaded $url" | |
break | |
else | |
echo "Failed to download $url. Waiting for 5 seconds before retry..." | |
sleep 5 | |
fi | |
done | |
- name: Prepare apidocs content | |
run: | | |
mkdir -p apidocs | |
cp -r apphub/apidocs/* apidocs/ | |
- name: Compress apidocs content | |
run: | | |
zip -r apidocs.zip apidocs | |
- name: Deploy apidocs content to Cloudflare Pages Dev Environment | |
run: | | |
curl -X POST "https://api.cloudflare.com/client/v4/accounts/eb79f13320db531d8cf1f3720966b695/pages/projects/doc-websoft9-com/deployments" \ | |
-H "Authorization: Bearer ${{ secrets.CLOUDFLARE_API_TOKEN }}" \ | |
-F "[email protected]" \ | |
-F "branch=dev" | |
# - name: Publish to Cloudflare Pages | |
# uses: cloudflare/pages-action@v1 | |
# with: | |
# apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
# accountId: eb79f13320db531d8cf1f3720966b695 | |
# projectName: doc-websoft9-com | |
# directory: apphub/apidocs | |
# # Optional: Enable this if you want to have GitHub Deployments triggered | |
# gitHubToken: ${{ secrets.GITHUB_TOKEN }} | |
# # Optional: Switch what branch you are publishing to. | |
# # By default this will be the branch which triggered this workflow | |
# branch: dev | |
pages: | |
name: Build Github Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Pages | |
uses: actions/configure-pages@v4 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v2 | |
with: | |
# Upload entire repository | |
path: '.' | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v3 |