1 Commits

Author SHA1 Message Date
9390b9cd7f WIP
All checks were successful
run tests / check (push) Successful in 29s
run tests / release (push) Successful in 19s
2025-12-10 10:35:46 +01:00
10 changed files with 15 additions and 76 deletions

View File

@@ -1,10 +0,0 @@
name: check if project is already released
on:
- pull_request
jobs:
unittest:
runs-on: action-runner
steps:
- uses: actions/checkout@v4
- uses: ./check-is-not-released

View File

@@ -67,26 +67,6 @@ jobs:
with:
configure_runner_environment: false
test-skip-release-if-already-released:
runs-on: action-runner
steps:
- uses: actions/checkout@v4
# skip login locally
- if: github.repository == 'actions/release'
uses: https://gitea.puzzleyou.net/actions/configure-runner-environment@master
- uses: ./declare
with:
configure_runner_environment: false
version_descriptor: test-assets/Cargo.toml
- uses: ./release
with:
configure_runner_environment: false
dry_run: true
sync_versions: false
test-declare-with-release-yaml:
runs-on: action-runner
steps:
@@ -100,7 +80,6 @@ jobs:
with:
dry_run: true
configure_runner_environment: false
sync_versions: false
- run: set -u; echo "$RELEASE_PROJECT_CURRENT_VERSION"

View File

@@ -33,11 +33,15 @@ runs:
run: |
set +e
if [[ "$RELEASE_PROJECT_IS_RELEASED" = "1" ]]; then
nix run ${{ github.action_path }} -- \
dump \
--state "${RELEASE_ACTION_STATEFILE}" \
| grep "is already released: True"
IS_RELEASED_EXIT_CODE=$?
if [[ "$IS_RELEASED_EXIT_CODE" -eq 0 ]]; then
VERSION="$RELEASE_PROJECT_CURRENT_VERSION"
echo "Project is already released with version ${VERSION}."
echo "You should increment the project version."
echo "If you don't, then the project will not be released."
exit -1
else
echo "Project is not yet released."

View File

@@ -104,11 +104,6 @@ runs:
- name: declare release project
run: |
if [[ ! -z "${RELEASE_PROJECT_CURRENT_VERSION}" ]]; then
echo "already set up."
exit 0
fi
nix run ${{ github.action_path }} -- \
declare \
--release-yaml-filename "${{ inputs.filename }}" \

View File

@@ -30,14 +30,11 @@ test-workflows:
--workflows ./.gitea/workflows/check.yaml \
--job test-is-not-yet-released
act_runner exec \
--image "-self-hosted" \
--event pull_request \
--workflows ./.gitea/workflows/check.yaml \
--job test-skip-release-if-already-released
act_runner exec \
--image "-self-hosted" \
--event pull_request \
--workflows ./.gitea/workflows/check.yaml \
--job test-sync-versions
# TODO
# --image "europe-docker.pkg.dev/puzzle-and-play/docker/action-runner-job:latest" \

View File

@@ -18,7 +18,7 @@ inputs:
sync_versions:
required: false
default: true
default: false
runs:
using: composite
@@ -43,28 +43,18 @@ runs:
--release-commit-sha "${{ github.sha }}" \
--write-env-vars-to-filename "$GITHUB_ENV"
- name: check if already released
id: check_released
run: |
if [[ "$RELEASE_PROJECT_IS_RELEASED" == "1" ]] && [[ "$RELEASE_IS_PRERELEASE" == "0" ]]; then
echo "is_released=1" >> "$GITHUB_OUTPUT"
else
echo "is_released=0" >> "$GITHUB_OUTPUT"
fi
- name: sync versions
if: ${{ steps.check_released.outputs.is_released == '0' && inputs.sync_versions == 'true' }}
if: inputs.sync_versions == 'true'
run: |
nix run ${{ github.action_path }} -- \
sync-versions \
--state "${RELEASE_ACTION_STATEFILE}"
- name: run build commands
if: ${{ steps.check_released.outputs.is_released == '0' && inputs.build_run != '' }}
if: inputs.build_run != ''
run: ${{ inputs.build_run }}
- name: publish artefacts
if: ${{ steps.check_released.outputs.is_released == '0' }}
run: |
nix run ${{ github.action_path }} -- \
publish-artefacts \
@@ -72,7 +62,6 @@ runs:
--dry-run "${{ inputs.dry_run }}"
- name: update deployments
if: ${{ steps.check_released.outputs.is_released == '0' }}
run: |
nix run ${{ github.action_path }} -- \
update-deployments \
@@ -80,7 +69,6 @@ runs:
--dry-run "${{ inputs.dry_run }}"
- name: create release
if: ${{ steps.check_released.outputs.is_released == '0' }}
run: |
nix run ${{ github.action_path }} -- \
create-release \

View File

@@ -2,5 +2,5 @@ from setuptools import setup
setup(
name='release-action',
version='0.0.1',
version='0.0.1.dev0',
)

View File

@@ -262,7 +262,7 @@ class ProjectDescription:
if self.gitea_tool is None:
return None
return self.gitea_tool.is_released(self.project_version)
return self.gitea_tool.is_released(self.planned_version)
@cached_property
def gitea_tool(self):
@@ -302,8 +302,6 @@ class ProjectDescription:
str(self.project_version),
'RELEASE_PROJECT_PLANNED_VERSION':
str(self.planned_version),
'RELEASE_PROJECT_IS_RELEASED':
'1' if self.is_released else '0',
}]
))

View File

@@ -1,6 +1,5 @@
from os import path
from unittest import TestCase
from unittest.mock import patch
import yaml
from semver import Version
@@ -15,14 +14,6 @@ from release.project import (ArtefactDescription, DeploymentCondition,
WheelReleaseInfo, parse_project_description)
class MockGiteaTool:
def __init__(self, *args, **kwargs):
pass
def is_released(self, version):
return False
class TestProjectDescription(TestCase):
def test_can_describe_projects(self):
# resi-lib
@@ -145,7 +136,6 @@ class TestProjectDescription(TestCase):
namespace='prngl-testing'))
])
@patch('release.project.toolkit.Gitea', MockGiteaTool)
def test_environment_variables(self):
# motacilla
desc = ProjectDescription(
@@ -194,7 +184,6 @@ class TestProjectDescription(TestCase):
'RELEASE_IMAGE_LOCAL_NAME_MOTACILLA_CDN':
'motacilla-cdn:0AB123',
'RELEASE_IS_PRERELEASE': '1',
'RELEASE_PROJECT_IS_RELEASED': '0',
'RELEASE_PROJECT_CURRENT_VERSION': '2.10.4',
'RELEASE_PROJECT_PLANNED_VERSION': '2.10.4-dev42'
}

View File

@@ -47,7 +47,6 @@ class Structured:
for part in item_path:
cur = cur[part]
self.filename = filename
self.format = format
self.item_path = item_path
self.content = obj