diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..b47606d --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,66 @@ +name: CI +on: + - push + - pull_request +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - '1.0' # old LTS + - '1.6' # new LTS + - '1' # Latest stable + - 'nightly' # 'nuf said + os: + - ubuntu-latest + arch: + - x64 + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: actions/cache@v1 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}- + ${{ runner.os }}-test- + ${{ runner.os }}- + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v1 + with: + file: lcov.info + docs: + name: Documentation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: '1' + - run: | + julia --project=docs -e ' + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate()' + - run: | + julia --project=docs -e ' + using Documenter: DocMeta, doctest + using Cowsay + DocMeta.setdocmeta!(Cowsay, :DocTestSetup, :(using Cowsay); recursive=true) + doctest(Cowsay)' + - run: julia --project=docs docs/make.jl + env: + JULIA_PKG_SERVER: "" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml new file mode 100644 index 0000000..cba9134 --- /dev/null +++ b/.github/workflows/CompatHelper.yml @@ -0,0 +1,16 @@ +name: CompatHelper +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: +jobs: + CompatHelper: + runs-on: ubuntu-latest + steps: + - name: Pkg.add("CompatHelper") + run: julia -e 'using Pkg; Pkg.add("CompatHelper")' + - name: CompatHelper.main() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }} + run: julia -e 'using CompatHelper; CompatHelper.main()' diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml new file mode 100644 index 0000000..f49313b --- /dev/null +++ b/.github/workflows/TagBot.yml @@ -0,0 +1,15 @@ +name: TagBot +on: + issue_comment: + types: + - created + workflow_dispatch: +jobs: + TagBot: + if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' + runs-on: ubuntu-latest + steps: + - uses: JuliaRegistries/TagBot@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ssh: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.github/workflows/register.yml b/.github/workflows/register.yml new file mode 100644 index 0000000..6e71f2f --- /dev/null +++ b/.github/workflows/register.yml @@ -0,0 +1,14 @@ +name: Register Package +on: + workflow_dispatch: + inputs: + version: + description: Version to register or component to bump + required: true +jobs: + register: + runs-on: ubuntu-latest + steps: + - uses: julia-actions/RegisterAction@latest + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.woodpecker.yaml b/.woodpecker.yaml deleted file mode 100644 index 353e4fc..0000000 --- a/.woodpecker.yaml +++ /dev/null @@ -1,37 +0,0 @@ -matrix: - JULIA_VERSION: - - "1.0" - - "1.6" - - "1.10" - - "1" - - "rc" - -clone: - git: - image: woodpeckerci/plugin-git - settings: - partial: false - depth: 0 - -steps: - test: - image: julia:${JULIA_VERSION} - pull: true - when: - event: [pull_request, push] - commands: - - julia -e 'using Pkg; Pkg.activate(pwd()); Pkg.instantiate()' - - julia -e 'using Pkg; Pkg.activate(pwd()); Pkg.test()' - docs: - image: julia:${JULIA_VERSION} - when: - branch: master - event: push - matrix: - JULIA_VERSION: "1" - commands: - - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' - - julia --project=docs/ docs/make.jl - environment: - PROJECT_ACCESS_TOKEN: - from_secret: project_access_token diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..9945880 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,45 @@ +matrix: + JULIA_VERSION: + - "1.0" + - "1.6" + - "1" + - "rc" + +pipeline: + test: + group: ci + image: julia:${JULIA_VERSION} + pull: true + when: + - event: pull_request + - event: push + branch: master + commands: + - julia --color=yes -e 'using Pkg; Pkg.activate(pwd()); Pkg.instantiate()' + - julia --color=yes -e 'using Pkg; Pkg.activate(pwd()); Pkg.test(;coverage=true)' + + docs: + group: ci + image: julia:1-alpine3.17 + when: + - event: push + branch: master + - event: manual + secrets: + - DOCS_REMOTE_USER + - DOCS_REMOTE_SERVER + - DOCS_REMOTE_DIR + - DOCS_KEY + - DOCS_PUBKEY + commands: + - apk add git openssh-client rsync + - mkdir -p $HOME/.ssh + - echo "${DOCS_KEY}" >> $HOME/.ssh/id_rsa + - chmod 0600 $HOME/.ssh/id_rsa + - git config --global user.email "woodpecker@millironx.com" + - git config --global user.name "woodpecker-bot" + - git config --global --add safe.directory /woodpecker/src + - julia --color=yes --project=docs -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + - julia --color=yes --project=docs docs/make.jl + - rsync -r --exclude .git docs/build/* ${DOCS_REMOTE_USER}@${DOCS_REMOTE_SERVER}:${DOCS_REMOTE_DIR} + \ No newline at end of file diff --git a/Project.toml b/Project.toml index 71bca51..c1c2d2d 100644 --- a/Project.toml +++ b/Project.toml @@ -7,8 +7,8 @@ version = "1.0.0" TextWrap = "b718987f-49a8-5099-9789-dcd902bef87d" [compat] -TextWrap = "1" julia = "1" +TextWrap = "1" [extras] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" diff --git a/docs/Manifest.toml b/docs/Manifest.toml new file mode 100644 index 0000000..2f33d9a --- /dev/null +++ b/docs/Manifest.toml @@ -0,0 +1,97 @@ +# This file is machine-generated - editing it directly is not advised + +[[ANSIColoredPrinters]] +git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" +uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" +version = "0.0.1" + +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[Cowsay]] +path = "/home/tchristensen/src/cowsay" +uuid = "b6370f49-8ad1-4651-ad9e-3639b35da0e9" +version = "0.1.0" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.8.6" + +[[Documenter]] +deps = ["ANSIColoredPrinters", "Base64", "Dates", "DocStringExtensions", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"] +git-tree-sha1 = "f425293f7e0acaf9144de6d731772de156676233" +uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +version = "0.27.10" + +[[IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.2" + +[[InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "8076680b162ada2a031f707ac7b4953e30667a37" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.2" + +[[LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" + +[[Parsers]] +deps = ["Dates"] +git-tree-sha1 = "ae4bbcadb2906ccc085cf52ac286dc1377dceccc" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.1.2" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" diff --git a/docs/Project.toml b/docs/Project.toml index ff84f53..7b594ac 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,6 +1,3 @@ [deps] Cowsay = "b6370f49-8ad1-4651-ad9e-3639b35da0e9" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" - -[compat] -Documenter = "1" diff --git a/docs/make.jl b/docs/make.jl index 704ffa3..99a03ff 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -3,48 +3,24 @@ using Documenter DocMeta.setdocmeta!(Cowsay, :DocTestSetup, :(using Cowsay); recursive=true) -struct GiteaRemote <: Documenter.Remote - host::String - user::String - repo::String -end - -function Documenter.Remotes.repourl(remote::GiteaRemote) - return "https://$(remote.host)/$(remote.user)/$(remote.repo)" -end - -function Documenter.Remotes.fileurl(remote::GiteaRemote, ref, filename, linerange) - if isnothing(linerange) - return "https://$(remote.host)/$(remote.user)/$(remote.repo)/src/commit/$ref/$filename" - else - return "https://$(remote.host)/$(remote.user)/$(remote.repo)/src/commit/$ref/$filename#L$(first(linerange))-$(last(linerange))" - end -end - -function Documenter.Remotes.issueurl(remote::GiteaRemote, issuenumber) - return "https://$(remote.host)/$(remote.user)/$(remote.repo)/issues/$issuenumber" -end - makedocs(; modules=[Cowsay], authors="Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> and contributors", - repo=GiteaRemote("code.millironx.com", "millironx", "Cowsay.jl"), - sitename="Cowsay.jl", + repo="https://github.com/MillironX/cowsay.jl/blob/{commit}{path}#{line}", + sitename="cowsay.jl", format=Documenter.HTML(; prettyurls=get(ENV, "CI", "false") == "true", - canonical="https://cowsay-jl.millironx.com/", + canonical="https://millironx.com/Cowsay.jl", assets=String[], ), pages=[ "Home" => "index.md", "Available Cowfiles" => "cows.md", "Make your own Cowfile" => "cowfiles.md", - "Private API Reference" => "private.md", ], ) deploydocs(; - repo="code.millironx.com/millironx/Cowsay.jl", + repo="github.com/MillironX/Cowsay.jl", devbranch="master", - branch="pages", ) diff --git a/docs/src/private.md b/docs/src/private.md deleted file mode 100644 index 9013744..0000000 --- a/docs/src/private.md +++ /dev/null @@ -1,7 +0,0 @@ -# Private API Reference - -Internal functions used by Cowsay.jl. - -```@autodocs -Modules = [Cowsay] -```