Skip to content

fix version number

fix version number #21

Workflow file for this run

name: bitbucket_upload
on:
push:
branches: [ wip/build-xpi ]
workflow_dispatch:
env:
XPI_NAME: tabmix-dev-build
jobs:
upload:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0
# fix this to main when we push this branch to main
ref: wip/build-xpi
- name: Set version in install.rdf
run: |
function next_version() {
local version=$(git tag --sort=-creatordate | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -n 1 | cut -c 2-)
if [[ $version =~ ^([0-9]+\.[0-9]+\.[0-9]+-pre\.)([0-9]+)$ ]]; then
local prefix=${BASH_REMATCH[1]}
local number=${BASH_REMATCH[2]}
let "number++"
echo "${prefix}${number}"
else
local IFS='.'
local -a parts=($version)
let "parts[-1]++"
echo "${parts[*]}"
fi
}
version=$(next_version)
date=$(date +'%Y%m%d.%H%M')
sed -i "s/1.0.0-unbundeled/$version-$date/" addon/install.rdf
- name: Zip addon folder
run: |
cd addon
zip -rq /tmp/${{ env.XPI_NAME }}.xpi *
# - name: Upload XPI to artifact
# uses: actions/upload-artifact@v4
# with:
# name: ${{ env.XPI_NAME }}
# path: ${{ env.XPI_NAME }}.xpi
# - name: Download XPI from artifact
# uses: actions/download-artifact@v4
# with:
# name: ${{ env.XPI_NAME }}
# - name: Use Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '20'
# - name: Install dependencies
# run: |
# npm install node-fetch form-data
# - name: Upload dev-build to bitbucket
# env:
# BITBUCKET_ACCESS_TOKEN: ${{ secrets.BITBUCKET_ACCESS_TOKEN }}
# run: node ./utils/bitbucket.mjs
- name: Upload dev-build to bitbucket
run: |
curl --request POST \
--url 'https://api.bitbucket.org/2.0/repositories/onemen/tabmixplus-for-firefox/downloads' \
--header 'Authorization: Bearer ${{ secrets.BITBUCKET_ACCESS_TOKEN }}' \
-F 'files=@/tmp/${{ env.XPI_NAME }}.xpi'
# - name: Upload dev-build to bitbucket
# uses: actions/github-script@v7
# with:
# script: |
# try {
# const fs = require('fs');
# const FormData = require('form-data');
# const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));
# const formData = new FormData()
# const filePath = '${{ env.XPI_NAME }}.xpi'
# console.log({filePath})
# const readStream = fs.createReadStream(filePath)
# console.log({readStream})
# formData.append("files", readStream)
# console.log({formData})
# const BITBUCKET_URL =
# 'https://api.bitbucket.org/2.0/repositories/onemen/tabmixplus-for-firefox/downloads'
# console.log({BITBUCKET_URL})
# let boundary = '--------------------------'
# for (var i = 0; i < 24; i++) {
# boundary += Math.floor(Math.random() * 10).toString(16)
# }
# console.log({boundary})
# const headers = new Headers({
# Authorization: `Bearer ${{ secrets.BITBUCKET_ACCESS_TOKEN }}`,
# "Content-Type": `multipart/form-data; boundary=${boundary}`,
# })
# console.log({headers})
# const response = await fetch(BITBUCKET_URL, {method: "POST", body: formData, headers})
# console.log({response})
# if (response.ok) {
# console.log(`File ${basename(filePath)} was uploaded to bitbucket downloads page`)
# } else {
# const text = await response.text()
# console.log("Error uploading file:", text, response.status, response.statusText)
# }
# } catch (error) {
# console.log(error)
# }