From ff938568bd42e4e048616c3d53c76ca045f39963 Mon Sep 17 00:00:00 2001 From: Dilum Aluthge Date: Sun, 6 Jun 2021 20:24:48 -0400 Subject: [PATCH] CI: Standardize the workflow for testing and changing the UUID --- .ci/test_and_change_uuid.jl | 28 ++++++++++++++++++++++++++++ .github/workflows/ci.yml | 6 ++---- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 .ci/test_and_change_uuid.jl diff --git a/.ci/test_and_change_uuid.jl b/.ci/test_and_change_uuid.jl new file mode 100644 index 00000000..a288e9a6 --- /dev/null +++ b/.ci/test_and_change_uuid.jl @@ -0,0 +1,28 @@ +@static if Base.VERSION >= v"1.6" + using TOML + using Test +else + using Pkg: TOML + using Test +end + +# To generate the new UUID, we simply modify the first character of the original UUID +const original_uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +const new_uuid = "20745b16-79ce-11e8-11f9-7d13ad32a3b2" + +# `@__DIR__` is the `.ci/` folder. +# Therefore, `dirname(@__DIR__)` is the repository root. +const project_filename = joinpath(dirname(@__DIR__), "Project.toml") + +@testset "Test that the UUID is unchanged" begin + project_dict = TOML.parsefile(project_filename) + @test project_dict["uuid"] == original_uuid +end + +write( + project_filename, + replace( + read(project_filename, String), + r"uuid = .*?\n" => "uuid = \"$(new_uuid)\"\n", + ), +) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 56bc78a4..d6dc8f05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,11 +40,9 @@ jobs: ${{ runner.os }}-test-${{ env.cache-name }}- ${{ runner.os }}-test- ${{ runner.os }}- + - run: julia --color=yes .ci/test_and_change_uuid.jl - uses: julia-actions/julia-buildpkg@v1 - - name: Run tests - run: | - julia --project --color=yes -e 'using UUIDs; write("Project.toml", replace(read("Project.toml", String), r"uuid = .*?\n" =>"uuid = \"$(uuid4())\"\n"));' - julia --project --color=yes --check-bounds=yes -e 'import Pkg; Pkg.build(); Pkg.test(; coverage=true)' + - uses: julia-actions/julia-runtest@v1 - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v1 with: