Skip to content

Updating CICD

Updating CICD #30

name: Create and publish pre-release
on:
push:
branches: ['develop', 'cicd']
jobs:
create-pre-release:
runs-on: ubuntu-latest
permissions:
packages: write
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Parse current version
id: get-app-version
run: echo "version=$(cat src/SlicerBoneMorphing.py | grep Version | awk '{print $2}')" >> $GITHUB_OUTPUT
- name: Create ZIP archive
env:
version: ${{steps.get-app-version.outputs.version}}
run: |
cd src
echo $version
zip -r SlicerBoneMorphing-$version.zip ./*
cd ..
cp src/SlicerBoneMorphing-$version.zip .
- name: Create a pre-release
id: create-pre-release
uses: actions/github-script@v6
env:
version: ${{steps.get-app-version.outputs.version}}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const version = process.env.version;
const fs = require('fs');
const body = fs.readFileSync("CHANGELOG.md", 'utf8');
const response = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `v${version}`,
name: `v${version}`,
body: `${body}`,
draft: false,
prerelease: true
});
return `release_id=${response.data.release_id}`;
- name: Upload ZIP to the release
uses: actions/github-script@v6
env:
version: ${{steps.get-app-version.outputs.version}}
release_id: ${{steps.create-pre-release.outputs.release_id}}
github_token: ${{ secrets.GITHUB_TOKEN }}
with:
script: |
import { Octokit } from "@octokit/core";
const version = process.env.version;
const release_id = process.env.release_id;
const octokit = new Octokit({
auth: process.env.github_token
});
await octokit.request('POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}', {
owner: context.repo.owner,
repo: context.repo.repo,
release_id: $release_id,
data: `@SlicerBoneMorphing-${version}.zip`,
name: `SlicerBoneMorphing-${version}.zip`,
label: "",
headers: {
'X-GitHub-Api-Version': '2022-11-28'
}
});