diff --git a/index.js b/index.js index 3418858..969a034 100644 --- a/index.js +++ b/index.js @@ -5,13 +5,15 @@ const child_process = require('child_process'); async function docker_buildx() { try { checkPlatform(); + cloneMyself(); const imageName = extractInput('imageName', true); await executeShellScript('install_buildx'); const imageTag = extractInput('tag', false, 'latest'); const publish = core.getInput('publish'); const platform = extractInput('platform', false, 'linux/amd64,linux/arm64,linux/arm/v7'); const buildFunction = publish ? buildAndPublish : buildOnly; - buildFunction(platform, imageName, imageTag); + await buildFunction(platform, imageName, imageTag); + cleanMyself(); } catch (error) { core.setFailed(error.message); } @@ -37,9 +39,9 @@ function checkRequiredInput(inputName, inputValue) { async function executeShellScript(scriptName, ...parameters) { parameters = (parameters || []).join(' '); - command = `./scripts/${scriptName}.sh ${parameters}`; + command = `sudo docker_buildx/scripts/${scriptName}.sh ${parameters}`; console.log(`Executing: ${command}`); - output = child_process.execSync(`./scripts/${scriptName}.sh ${parameters}`); + output = child_process.execSync(command); console.log(`Output: ${output}`); } @@ -54,4 +56,12 @@ async function buildOnly(platform, imageName, imageTag) { await executeShellScript('docker_build', platform, imageName, imageTag); } +function cloneMyself() { + child_process.execSync(`git clone https://github.com/ilteoood/docker_buildx`); +} + +function cleanMyself() { + child_process.execSync(`rm -rf docker_buildx`); +} + docker_buildx(); \ No newline at end of file diff --git a/scripts/docker_build.sh b/scripts/docker_build.sh index 1ee89ad..e7bee21 100755 --- a/scripts/docker_build.sh +++ b/scripts/docker_build.sh @@ -1,2 +1,3 @@ #!/bin/sh -l +export DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --platform $1 -t $2:$3 . \ No newline at end of file diff --git a/scripts/docker_build_push.sh b/scripts/docker_build_push.sh index a18e482..78ced40 100755 --- a/scripts/docker_build_push.sh +++ b/scripts/docker_build_push.sh @@ -1,2 +1,3 @@ #!/bin/sh -l +export DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --platform $1 --push -t $2:$3 . \ No newline at end of file diff --git a/scripts/install_buildx.sh b/scripts/install_buildx.sh index 4cc1293..162419d 100755 --- a/scripts/install_buildx.sh +++ b/scripts/install_buildx.sh @@ -1,9 +1,5 @@ #!/bin/sh -l -# Install curl -apt-get update -apt-get install curl wget -y - # Download buildx curl -s https://api.github.com/repos/docker/buildx/releases/latest \ | grep "browser_download_url.*buildx-*.*linux-amd64" \