Skip to content

chore: update beta.yml #10

chore: update beta.yml

chore: update beta.yml #10

Workflow file for this run

name: Build and Release fideo
on:
push:
branches:
- beta
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install PNPM
run: npm install -g pnpm
- name: Install dependencies
run: pnpm install
- name: Get version from package.json
id: get_version
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
shell: bash
- name: Build Electron App
run: |
if [ "${{ runner.os }}" == "Windows" ]; then
pnpm build:win
elif [ "${{ runner.os }}" == "macOS" ]; then
pnpm build:mac
fi
shell: bash
- name: Upload Windows build artifact
if: ${{ runner.os == 'Windows' }}
uses: actions/upload-artifact@v4
with:
name: build-win-${{ env.VERSION }}-beta
path: dist/fideo-${{ env.VERSION }}.exe
- name: Upload macOS build artifacts (x64)
if: ${{ runner.os == 'macOS' }}
uses: actions/upload-artifact@v4
with:
name: build-mac-x64-${{ env.VERSION }}-beta
path: dist/fideo-${{ env.VERSION }}-x64.dmg
- name: Upload macOS build artifacts (arm)
if: ${{ runner.os == 'macOS' }}
uses: actions/upload-artifact@v4
with:
name: build-mac-arm-${{ env.VERSION }}-beta
path: dist/fideo-${{ env.VERSION }}-arm64.dmg
- name: Create release on GitLab
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GITLAB_PROJECT_ID: ${{ secrets.GITLAB_PROJECT_ID }}
run: |
# Define variables
RELEASE_TAG=${{ env.VERSION }}-beta
RELEASE_NAME="Release $RELEASE_TAG"
RELEASE_DESCRIPTION="Automated release for version $RELEASE_TAG"
# Upload Windows artifact to GitLab as a release asset
WIN_ASSET_URL=$(curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--form "file=@dist/fideo-${{ env.VERSION }}.exe" \
"https://gitlab.com/api/v4/projects/$GITLAB_PROJECT_ID/uploads" | jq -r '.url')
# Upload macOS x64 artifact to GitLab as a release asset
MAC_X64_ASSET_URL=$(curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--form "file=@dist/fideo-${{ env.VERSION }}-x64.dmg" \
"https://gitlab.com/api/v4/projects/$GITLAB_PROJECT_ID/uploads" | jq -r '.url')
# Upload macOS arm artifact to GitLab as a release asset
MAC_ARM_ASSET_URL=$(curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--form "file=@dist/fideo-${{ env.VERSION }}-arm64.dmg" \
"https://gitlab.com/api/v4/projects/$GITLAB_PROJECT_ID/uploads" | jq -r '.url')
# Create a release on GitLab
curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--data "name=$RELEASE_NAME" \
--data "tag_name=$RELEASE_TAG" \
--data "description=$RELEASE_DESCRIPTION" \
--data "assets[links][][name]=Windows" \
--data "assets[links][][url]=https://gitlab.com/$GITLAB_PROJECT_ID/uploads/$WIN_ASSET_URL" \
--data "assets[links][][name]=macOS x64" \
--data "assets[links][][url]=https://gitlab.com/$GITLAB_PROJECT_ID/uploads/$MAC_X64_ASSET_URL" \
--data "assets[links][][name]=macOS ARM" \
--data "assets[links][][url]=https://gitlab.com/$GITLAB_PROJECT_ID/uploads/$MAC_ARM_ASSET_URL" \
"https://gitlab.com/api/v4/projects/$GITLAB_PROJECT_ID/releases"