initial commit

This commit is contained in:
Frost Ming 2021-03-01 10:52:04 +08:00
parent 52f1dcc155
commit 7bd747c85d
No known key found for this signature in database
GPG Key ID: 5BFA9CB4DDA943BF
8 changed files with 117 additions and 1 deletions

14
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,14 @@
on: [push]
jobs:
Testing:
runs-on: ubuntu-latest
name: Test the action
steps:
- name: Setup PDM
uses: ./
with:
python-version: 3.6
# Use the output from the `hello` step
- name: Get the project info
run: pdm info

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
node_modules/
yarn.lock
__pypackages__/

2
.pdm.toml Normal file
View File

@ -0,0 +1,2 @@
[python]
path = "/Users/fming/Library/PythonUp/cmd/python3.8"

View File

@ -1,2 +1,3 @@
# pdm-action
# Setup PDM for GitHub Action
The GitHub Action for using pdm as the package manager

21
action.yml Normal file
View File

@ -0,0 +1,21 @@
---
name: 'Setup PDM'
description: 'Set up a specific version of PDM and uses a given Python version to work on'
author: 'Frost Ming'
inputs:
python-version:
description: "Version range or exact version of a Python version to use, using SemVer's version range syntax."
default: '3.x'
architecture:
description: 'The target architecture (x86, x64) of the Python interpreter.'
token:
description: Used to pull python distributions from actions/python-versions. Since there's a default, this is typically not supplied by the user.
default: ${{ github.token }}
version:
description: The version of PDM to install.
runs:
using: 'node12'
main: 'index.js'
branding:
icon: 'code'
color: 'green'

30
index.js Normal file
View File

@ -0,0 +1,30 @@
import * as core from "@actions/core";
import * as exec from "@actions/exec";
import * as setupPython from "setup-python/dist";
import * as os from "os";
import { exec as execChild } from "child_process";
const INSTALL_VERSION = "3.8";
async function run() {
const arch = core.getInput("architecture") || os.arch();
const pdmVersion = core.getInput("version");
const pdmPackage = pdmVersion ? `pdm==${pdmVersion}` : "pdm";
try {
await setupPython.findPythonVersion(INSTALL_VERSION, arch);
await exec.exec("python", ["-m", "pip", "install", "-U", pdmPackage]);
const installed = await setupPython.findPythonVersion(
core.getInput("python-version"),
arch
);
await exec.exec("pdm", ["use", "-f", installed.version]);
const pdmVersionOutput = (await execChild("pdm --version")).stdout;
core.info(
`Successfully setup ${pdmVersionOutput} with Python ${installed.version}`
);
} catch (error) {
core.setFailed(error.message);
}
}
run();

23
package.json Normal file
View File

@ -0,0 +1,23 @@
{
"name": "pdm-action",
"version": "1.0.0",
"description": "The GitHub Action for using pdm as the package manager",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/pdm-project/pdm-action.git"
},
"dependencies": {
"@actions/core": "^1.2.6",
"@actions/exec": "^1.0.4",
"setup-python": "actions/setup-python"
},
"devDependencies": {
"@types/node": "^14.14.31",
"typescript": "^4.2.2"
}
}

22
pyproject.toml Normal file
View File

@ -0,0 +1,22 @@
[project]
name = ""
version = ""
description = ""
authors = [
{name = "Frost Ming", email = "mianghong@gmail.com"},
]
dependencies = []
dev-dependencies = []
requires-python = ">=3.8"
dynamic = ["classifiers"]
license = {text = "MIT"}
[project.urls]
homepage = ""
[tool]
[tool.pdm]
[build-system]
requires = ["pdm-pep517"]
build-backend = "pdm.pep517.api"