chore: update beta.yml #10
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: 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" |